随笔-95  评论-31  文章-10  trackbacks-0
命令模式:
命令模式有三个角色:1、接收者。2、命令者。3、调用者
这三个的关系是:接收者自己有方法,有属性,有自己的行为。命令者定义为一个接口,实现该接口的类持有接收者类,通过构造加载进来,同时有一个execute()方法,里面调用接收者的方法。调用者持有命令者接口,通过set方法加载进来,并有一个action()方法这里和execute()方法区分,里面调用execute()方法,所以调用者对外只暴露该action方法便可以实现不同的行为。实例化的过程为:
Receive receive = new Receive();
Command cc  = new ConcreteCommand(receive);
Invoker ik = new Invoker();
ik.setCommand(cc);
ik.action();//这里即为调用的cc.execute()方法但是里面又调用的receiver的方法,这里就等于将调用者与接收者通过命令者解耦了,调用者不关心内部怎么实现,只需调用action()方法,就可以调用receive的方法,对外只暴露了一个方法。
这个模式可以用于队列请求,日志请求,还有struts框架的Action类也是用命令模式实现,就写到这里明天补充代码。
posted on 2010-09-06 00:21 朔望魔刃 阅读(272) 评论(0)  编辑  收藏 所属分类: 设计模式&&数据结构

只有注册用户登录后才能发表评论。


网站导航: