學校中、生活中、社會中總是會存在一定的階層,雖然我們很多人都不可認可階層的存在。命令這一詞也就在階層中誕生。家長命令孩子,老師命令學生,領導命令小婁婁。這些都在我們的生活存在的東西,相信這一個模式學習起來也會比較簡單的。這次我們就舉一個領導命令員工的例子來學習命令模式。
工作中領導經常會叫(命令)你去做一些事情,但是領導並不關心你怎么做的,只需要知道你做的結果就好了。怎么做是你自己的事情,做不好就等着加班吧(開玩笑的,一般都會說自己自願的,哈哈),做的好功勞也不好是你的,哈哈好像有點小黑暗。一般大領導會叫小領導做事情,小領導才叫小婁婁。然后功勞你懂的。不多說了,說多了都是淚。開始碼代碼。
既然是命令就要有命令呀,先定義一個命令吧。
package com.roc.command; /** * 命令 * @author liaowp * */ public abstract class Command { protected CodeWorkMan codeWorkMan=new CodeWorkMan();//定義一個程序員 /** * 執行命令 */ public abstract void execute(); }
還是需要一個小婁婁呢,簡稱工作人員,能寫文檔、能寫代碼、還需要能加班。
package com.roc.command; public abstract class WorkMan { /** * 寫文檔 */ public abstract void writeDocument(); /** * 工作 */ public abstract void work(); /** * 加班 */ public abstract void overWork(); }
需要具體的人員吧,不然怎么體現領導的價值呢。就來一個程序員吧
package com.roc.command; /** * 程序員 * @author liaowp * */ public class CodeWorkMan extends WorkMan{ public void writeDocument() { System.out.println("寫文檔中。。。。。。。。"); } public void work() { System.out.println("叫你上班就上班,廢話撒。。。。。。。。。"); } public void overWork() { System.out.println("領導一句加班,加班中。。。。。。。。。。。"); } }
需要一個小領導吧,不然沒有人管理程序員呀,那就創建一個領導吧。
package com.roc.command; /** * 小領導,一般大領導不會直接給員工下命令。 * @author liaowp * */ public class LittleLead { private Command command; public Command getCommand() { return command; } public void setCommand(Command command) { this.command = command; } public void action(){//小領導執行命令,小領導在叫員工執行 command.execute(); } }
需要具體的執行命令,不然不知道應該干嘛呢。那就來一個執行命令
package com.roc.command; /** * 程序員執行命令 * @author liaowp * */ public class CodeCommand extends Command{ public void execute() { super.codeWorkMan.work();//工作 super.codeWorkMan.overWork();//加班 super.codeWorkMan.writeDocument();//寫文檔 } }
這樣好的場景需要有一個場景模擬吧,客戶端咯
package com.roc.command; /** * 模擬大領導 命令模式 * @author liaowp * */ public class Client { public static void main(String[] args) {//領導發命令,並不用關心你的工作,發命令就可以。具體怎么搞,你們自己搞去 Command command=new CodeCommand();//命令 LittleLead lead=new LittleLead(); //小領導 lead.setCommand(command); lead.action(); } }
整個命令模式就是領導發命令叫你干事情,並不用管你怎么搞,發出一條命令,命令需要先思考,先生成命令,然后領導想到命令了,領導發命令,干事情的是程序員。命令模式,果然有點叼呀。