一个比较有意思的例子,来说明命令模式
Client :看电视的人
Invoker :遥控器
Command :电信号
具体命令 :遥控器上的按键对应的不同的电信号
Receiver :电视机
Command模式,对功能的调用和功能的实现进行解藕。功能的调用者不用知道具体的功能是怎样实现的,使用了接口,具有很大的灵活性,使代码稳健、可维护、可复用。
下面是一个简单的例子,首先建立一个接口ICommand,
public interface ICommand {
void execue();
}
然后是两个实现了这个接口和具体功能的实用类:
public class Printer implements ICommand {
public void execue() {
System.out.println("printed!");
}
}
public class FileOpener implements ICommand {
public void execue() {
System.out.println("Open file");
}
}
在下面的这个类中实现了命令模式:
public class SystemFunction {
private List<ICommand> cmds = new ArrayList<ICommand>();
public SystemFunction() {
cmds.add(new FileOpener());
cmds.add(new Printer());
}
public void doWork() {
// TODO Auto-generated method stub
for(ICommand cmd:cmds) {
cmd.execue();
}
}
public static void main(String[] args) {
SystemFunction cmd = new SystemFunction();
cmd.doWork();
}
}
使用List存储具体的命令对象,由于实现了接口,所以能够以接口来引用具体的对象,这样就体现了解藕和灵活性。
通过以上简单的代码演示,应该可以对Command模式有一个大概的认识,为实际的开发提供更多的思路。
分享到:
相关推荐
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段...
命令模式是一种行为设计模式,它将请求封装为一个对象,使得可以使用不同的请求、队列或者日志请求,也可以支持可撤销的操作。在C++中,命令模式的应用可以帮助我们更好地组织代码,提高代码的可扩展性和可维护性。...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在软件工程中,这种模式广泛应用在各种场景中,以提高代码的灵活...
通过分析和学习这些代码,我们可以更深入地理解策略模式和命令模式在实际项目中的应用,同时也能提升自己的编程技巧和设计思维。 总的来说,策略模式和命令模式在记事本软件中的应用展示了设计模式在提高代码质量、...
命令模式是一种设计模式,它将请求封装为一个对象,从而使我们能使用不同的请求、队列或者日志请求,以及支持可撤销的操作。在本代码demo中,我们将...学习和掌握命令模式,将使你在设计和实现复杂系统时更加得心应手。
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。...这个示例代码和文档为学习和实践命令模式提供了很好的参考资料。
学习js设计模式的例子,用到了命令模式、修装模式
在学习和使用命令模式时,需要注意以下几点: - 不要过度使用命令模式,只有当确实需要解耦调用者和接收者,或者需要支持撤销操作时才使用。 - 命令模式可能会导致大量小对象的创建,如果内存管理成为问题,可以考虑...
### 路由器常用命令模式设置 在IT网络管理领域,路由器作为核心设备之一,其配置与管理显得尤为重要。本文将围绕路由器的常用命令及其功能进行详细介绍,旨在帮助网络管理员更好地理解和掌握这些命令,从而有效地...
在`CommandPattern.zip`文件中,可能包含了这个模式的示例代码,你可以进一步查看和学习这些代码,以便更好地理解和应用命令模式。记住,虽然这是一个简单的实现,但命令模式的威力在于其能够适应复杂的需求,例如在...
在这个作业中,你可能还会学习到如何结合Java和其他工具(如visio文件barbecue.vsd)来描绘类图和系统架构,以便更好地理解命令模式的结构和交互。通过这个烧烤店的实例,你可以深入理解命令模式的应用,并将其应用...
命令模式是一种行为设计模式,它的主要目的是将请求封装为对象,以便于参数化不同请求、队列请求、记录请求日志以及支持撤销和重做操作。在软件开发中,它帮助解耦了请求发起者(调用者)和请求执行者(接收者),...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在本Demo中,我们将深入理解并实践这一模式。 命令模式的核心...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录...通过"命令模式demo"的学习,你可以更好地理解和应用这一设计模式,提高代码的可扩展性和可维护性。
该PPT用于公司内部分享设计模式6---命令模式之用,言简意赅,形象生动.故此分享,希望大家一起学习
总的来说,这个压缩包中的内容很可能是包含了一个命令模式和享元模式的示例程序,通过分析和学习这个实例,我们可以更好地理解和掌握这两种设计模式的运用场景、实现方式以及它们在实际项目中的价值。对于想要深入...
通过学习设计模式,开发人员能够更好地理解和组织代码,提高软件的可维护性和扩展性。设计模式通常分为三大类:创建型模式、结构型模式和行为型模式。本文将详细介绍PHP中的命令链模式。 #### 二、命令链模式简介 ...
通过这些文件,我们可以深入理解命令模式的原理,学习如何在不同的上下文中使用它,并提升我们的编程技能。命令模式的应用不仅仅局限于Java或面向对象编程,也可以在其他编程语言和非面向对象的环境中发挥作用。在...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队...通过学习和应用命令模式,开发者可以更好地理解和设计面向对象软件的结构,提高代码的可读性和可维护性。