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

    }
    主站蜘蛛池模板: 青青青亚洲精品国产| 国产精品亚洲片在线| 拔擦拔擦8x华人免费久久| 亚洲免费福利在线视频| 91嫩草免费国产永久入口| 亚洲高清免费在线观看| 1000部啪啪未满十八勿入免费| 99精品视频在线观看免费专区| 免费无码一区二区三区| 亚洲免费一级视频| 亚洲免费人成视频观看| 成年女人毛片免费播放视频m| 免费人成视频在线| 国产又黄又爽又猛的免费视频播放| 免费看a级黄色片| 免费国产在线观看| 亚洲精品亚洲人成在线观看下载| 亚洲成片观看四虎永久| 国产亚洲成人久久| 亚洲AV日韩精品久久久久久久| 亚洲图片在线观看| 色老板亚洲视频免在线观| 亚洲精品欧美综合四区| 全黄A免费一级毛片| 国产特黄一级一片免费 | 久久精品国产亚洲Aⅴ香蕉| 亚洲精品麻豆av| 亚洲成AV人片在线播放无码| 亚洲美女视频一区| 亚洲日韩一区精品射精| 青青草97国产精品免费观看| 视频免费在线观看| 91成人免费在线视频| 日韩电影免费在线观看视频| 亚洲精品99久久久久中文字幕| 久久久久久久尹人综合网亚洲| 亚洲成人高清在线观看| 亚洲AV网一区二区三区 | 亚洲人成7777| 免费高清A级毛片在线播放| 中文字幕无码日韩专区免费|