<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-95  評(píng)論-31  文章-10  trackbacks-0
    /**
     * 
    @author LX
     * 通用Reveiver類
     
    */

    public abstract class Receiver {
        
        
    //抽象接收者,定義每個(gè)接收者必須完成的業(yè)務(wù) 
        public abstract void doSomething();
        
    //撤銷
        public abstract void undo();
    }

    /**
     *抽象Command類
     *
    */

    public abstract class Command {
        
        
    public abstract void execute();
        
    public abstract void undo();
    }

    /**
     *調(diào)用者類
     *
    */

    public class Invoker {
         
        
    private Command command;
        
        
    public void setCommand(Command command){
            
    this.command=command;
        }

        
        
    public void action(){
            
    this.command.execute();
        }

    }

    /**
     *具體接收者
     *
    */

    public class ConcreteReceiver1 extends Receiver {

        @Override
        
    public void doSomething() {
        }


        @Override
        
    public void undo() {
            
        }

    }

    /**
     *具體Command類
     *
    */

    public class ConcreteCommand1 extends Command {
        
        
    private Receiver receiver;
        
    public ConcreteCommand1(Receiver receiver){
            
    this.receiver=receiver;
        }

        
        @Override
        
    public void execute() {
            receiver.doSomething();
        }


        @Override
        
    public void undo() {
            receiver.undo();
        }

    }

    /**
     *測(cè)試類
     *
    */

    public class Test {
        
        
    public static void main(String[] args) {
            Invoker invoker 
    = new Invoker();
            Receiver receiver 
    = new ConcreteReceiver1(); //定義接收者
            Command command = new ConcreteCommand1(receiver);//定義一個(gè)發(fā)送給接收者的命令
            invoker.setCommand(command);//把命令交給調(diào)用者去執(zhí)行
            invoker.action();
        }

    }
    //更完美的Command類
    public abstract class Command {
        
    //定義一個(gè)子類的全局共享變量
        protected final Receiver receiver;
        
    //實(shí)現(xiàn)類必須定義一個(gè)接收者
        public Command(Receiver receiver){
            
    this.receiver=receiver;
        }

        
    //每個(gè)命令類都必須有一個(gè)執(zhí)行命令的方法
        public abstract void execute();
    }

    public class ConcreteCommand1 extends Command{
        
        
    //設(shè)置自己的默認(rèn)構(gòu)造
        public ConcreteCommand1(){
            
    super(new ConcreteReceiver1());
        }

        
    //設(shè)置新的接收者
        public ConcreteCommand1(Receiver receiver) {
            
    super(receiver);
        }

        
    //業(yè)務(wù)處理
        @Override
        
    public void execute() {
            
    super.receiver.doSomething();
        }

    }

    public class Test {
        
    public static void main(String[] args) {
            Invoker invoker 
    = new Invoker();
            Command command 
    = new ConcreteCommand1(); //無需知道具體接收者
            invoker.setCommand(command);
            invoker.action();
        }

    }
    主站蜘蛛池模板: 久久久高清免费视频| 中文字幕视频免费在线观看| 亚洲精品美女在线观看| 亚洲阿v天堂在线2017免费| 又黄又爽一线毛片免费观看| 亚洲av午夜国产精品无码中文字| 成人久久久观看免费毛片| 免费人成无码大片在线观看| 国产精品成人亚洲| 国产性爱在线观看亚洲黄色一级片 | 在线免费中文字幕| 亚洲成人午夜电影| 亚洲免费综合色在线视频| 亚洲成人激情小说| 在线涩涩免费观看国产精品 | 亚洲国产美国国产综合一区二区 | 亚洲精品国产成人专区| 中文字幕视频免费| 天堂亚洲国产中文在线| 国产乱弄免费视频| 中文在线日本免费永久18近| 亚洲一区综合在线播放| 好男人www免费高清视频在线 | 亚洲精品亚洲人成在线观看麻豆| 99久久99这里只有免费费精品| 亚洲一区二区三区在线观看网站| 国产免费av片在线播放| 手机看片国产免费永久| 亚洲精品色婷婷在线影院| 亚洲真人无码永久在线观看| 国产一级高清视频免费看| 久久久WWW免费人成精品| 亚洲美女视频一区| 四虎国产精品免费久久影院| 成全视频在线观看免费| 国产精品亚洲精品青青青 | 亚洲一区二区三区四区在线观看| 无码专区永久免费AV网站| 又黄又大的激情视频在线观看免费视频社区在线 | 亚洲 欧洲 视频 伦小说| 久久久无码精品亚洲日韩软件 |