命令模式

来源:互联网 发布:php cs fixer v2.phar 编辑:程序博客网 时间:2024/05/01 20:48

在软件系统中,行为的请求者和行为的执行者通常是一种"紧耦合",命令模式的产生就是为了实现他们之间的"松耦合"

在命令模式中,通常包含以下几种角色:

1、ICommond:

定义命令的接口,声明命令的方法。

2、Commond

定义具体的命令,里面通常会包含一个执行者

3、Receiver

行为的执行者

4、Invoker

行为请求者,通常包含一个命令对象,也可包括多个命令对象,使用list组织起来

5、Client

创建具体的命令对象,并且设置命令对象的接收者。注意这个不是我们常规意义上的客户端,而是在组装命令对象和接收者,或许,把这个Client称为装配者会更好理解,因为真正使用命令的客户端是从Invoker来触发执行。

 

下面就来用java代码实现这些设计模式:

定义ICommond

public interface ICommond{public void execute();}

 

定义Receiver

public class Receiver{public void doSome(){System.out.println("正在做某事....");}}



定义Commond

public class Commond implements ICommond{private Receiver receiver;public Commond(Receiver receiver){this.receiver=receiver;}@Overridepublic void execute(){// TODO Auto-generated method stubreceiver.doSome();}}

 

定义Invoker

public class Invoker{private ICommond commond;public Invoker(ICommond commond){this.commond=commond;}public void doSome(){commond.execute();}}


定义Client

public class Client{public static void main(String[] args){Receiver receiver=new Receiver();Commond commond=new Commond(receiver);Invoker invoker=new Invoker(commond);invoker.doSome();}}


 

原创粉丝点击