<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();
        }

    }

    /**
     *測試類
     *
    */

    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();
        }

    }
    主站蜘蛛池模板: 91亚洲精品麻豆| 亚洲综合无码AV一区二区| 日本精品人妻无码免费大全| 久久久久久国产精品免费免费男同| 一级做a爱过程免费视| 免费看一级毛片在线观看精品视频| 亚洲AV无码精品国产成人| 亚洲爆乳AAA无码专区| 久久亚洲精品11p| 美女视频免费看一区二区| 性生大片视频免费观看一级| 一级毛片无遮挡免费全部| 久久高潮一级毛片免费| 国色精品va在线观看免费视频 | 精品免费tv久久久久久久| 全黄A免费一级毛片| 国产成人1024精品免费| a毛片在线看片免费| 久久青草免费91观看| 无码av免费网站| 亚洲第一网站免费视频| 成人无码区免费A片视频WWW| 免费看的成人yellow视频| 免费国产真实迷j在线观看| 亚洲精品动漫人成3d在线| 亚洲女同成av人片在线观看| 亚洲专区在线视频| 亚洲一区二区三区免费在线观看| 美女视频黄免费亚洲| 青青免费在线视频| 成人A片产无码免费视频在线观看| 色欲国产麻豆一精品一AV一免费| 最近新韩国日本免费观看| 日韩免费高清视频网站| 亚洲欧洲中文日韩久久AV乱码| 亚洲va国产va天堂va久久| 国产亚洲sss在线播放| 一道本不卡免费视频| 99re在线这里只有精品免费| 女人18毛片a级毛片免费视频| 亚洲精品一级无码鲁丝片|