随笔-95  评论-31  文章-10  trackbacks-0

关键命令调用类:

 1/**
 2 * 该类持有Command抽象类,action方法即可调用
 3 * Command的子类方法名称都为execute
 4 **/

 5public class invoker{
 6         private Command command;
 7         public setCommand(Command command){
 8             this.command = command            
 9         }

10         public void action(){
11             this.command.execute();
12}
       
13}
Command抽象类,里面只含有execute()方法,所以其子类构造参数为命令执行者,并且持有命令执行者对象,execute方法里面即为命令执行者对象.方法
 1public abstract class Command{
 2   public abstract void execute();
 3}

 4
 5public class Command1 extends Command{
 6   private Receiver receiver;
 7   public Command1(Receiver receiver){
 8       this.receiver = receiver;
 9}

10   @Override
11   public void execute(){
12     receiver.doSomething();
13}
 
14}
以上Receiver就是具体的执行对象(抽象类),该模式体现了高内聚的特点,缺点为有N个命令就会有N个子类,导致类膨胀。
posted on 2010-12-25 23:28 朔望魔刃 阅读(245) 评论(0)  编辑  收藏 所属分类: 设计模式&&数据结构

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


网站导航: