黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

命令模式

系統 2043 0

命令模式(別名:動作,事務)

將一個請求封裝為一個對象,從而使用戶可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日志,心腹支持可撤銷的操作。


命令模式

Receiver(接收者):接收者是一個類的實例,該實例負責執行與請求相關的操作。

Command(命令)接口:命令是一個接口,規定了用來封裝“請求”的若干個方法,比如execute()、undo()等方法.

ConcreteCommand(具體命令):是實例命令接口的類的實例。具體命令必須實現命令接口中的方法,比如execute()方法,使該方法封裝一個“請求”。

Invoker(請求者):是一個包含Command接口變量的類的實例。請求者中的Command接口的變量可以存放任何具體命令的引用。請求者負責調用具體命令,讓具體命令執行那些封裝了“請求”的方法,比如execute()方法。

?

  • 使用
  1. 接收者(Receive)??? Company.java
            public class CompanyArmy{
        public void sneakAttack(){
            System.out.println("我們知道如何偷襲敵人,保證完成任務");
        }
    }
          
    ?
  2. 命令(Command)接口
            public interface Command {
    	public void execute();
    }
          
    ?
  3. 具體命令(ConcreteCommand)
            public class ConcreteCommand implements Command {
    
    	CompanyArmy army;//含有接收者的引用
    	ConcreteCommand(CompanyArmy army){
    		this.army = army;
    	}
    	public void execute() {//封裝著指揮官的請求
    		army.sneakAttack();
    	}
    
    }
          
    ?
  4. 請求者(Invoker)
            public class ArmySuperior {
    	Command command;
    	public void setCommand(Command command){
    		this.command = command;
    	}
    	public void startExecuteCommand(){//讓具體命令執行execute方法
    		command.execute();
    	}
    }
          
    ?
  5. 模式的使用
            public class Main {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		//創建接收者
    		CompanyArmy ca = new CompanyArmy();
    		//創建具體命令并指定接收者
    		Command command = new ConcreteCommand(ca);
    		//創建命令的請求者
    		ArmySuperior commander = new ArmySuperior();
    		commander.setCommand(command);
    		commander.startExecuteCommand();
    	}
    
    }
          
  • 適合使用命令模式:
  1. 程序需要在不現時刻指定、排序和執行請求
  2. 程序需要提供撤銷操作
  3. 程序需要支持宏操作?

命令模式


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論