java.awt.action 命令模式_java设计模式之命令模式
學(xué)校中、生活中、社會(huì)中總是會(huì)存在一定的階層,雖然我們很多人都不可認(rèn)可階層的存在。命令這一詞也就在階層中誕生。家長(zhǎng)命令孩子,老師命令學(xué)生,領(lǐng)導(dǎo)命令小婁婁。這些都在我們的生活存在的東西,相信這一個(gè)模式學(xué)習(xí)起來也會(huì)比較簡(jiǎn)單的。這次我們就舉一個(gè)領(lǐng)導(dǎo)命令員工的例子來學(xué)習(xí)命令模式。
工作中領(lǐng)導(dǎo)經(jīng)常會(huì)叫(命令)你去做一些事情,但是領(lǐng)導(dǎo)并不關(guān)心你怎么做的,只需要知道你做的結(jié)果就好了。怎么做是你自己的事情,做不好就等著加班吧(開玩笑的,一般都會(huì)說自己自愿的,哈哈),做的好功勞也不好是你的,哈哈好像有點(diǎn)小黑暗。一般大領(lǐng)導(dǎo)會(huì)叫小領(lǐng)導(dǎo)做事情,小領(lǐng)導(dǎo)才叫小婁婁。然后功勞你懂的。不多說了,說多了都是淚。開始碼代碼。
既然是命令就要有命令呀,先定義一個(gè)命令吧。
packagecom.roc.command;/*** 命令
*@authorliaowp
**/
public abstract classCommand {protected CodeWorkMan codeWorkMan=new CodeWorkMan();//定義一個(gè)程序員
/*** 執(zhí)行命令*/
public abstract voidexecute();
}
還是需要一個(gè)小婁婁呢,簡(jiǎn)稱工作人員,能寫文檔、能寫代碼、還需要能加班。
packagecom.roc.command;public abstract classWorkMan {/*** 寫文檔*/
public abstract voidwriteDocument();/*** 工作*/
public abstract voidwork();/*** 加班*/
public abstract voidoverWork();
}
需要具體的人員吧,不然怎么體現(xiàn)領(lǐng)導(dǎo)的價(jià)值呢。就來一個(gè)程序員吧
packagecom.roc.command;/*** 程序員
*@authorliaowp
**/
public class CodeWorkMan extendsWorkMan{public voidwriteDocument() {
System.out.println("寫文檔中。。。。。。。。");
}public voidwork() {
System.out.println("叫你上班就上班,廢話撒。。。。。。。。。");
}public voidoverWork() {
System.out.println("領(lǐng)導(dǎo)一句加班,加班中。。。。。。。。。。。");
}
}
需要一個(gè)小領(lǐng)導(dǎo)吧,不然沒有人管理程序員呀,那就創(chuàng)建一個(gè)領(lǐng)導(dǎo)吧。
packagecom.roc.command;/*** 小領(lǐng)導(dǎo),一般大領(lǐng)導(dǎo)不會(huì)直接給員工下命令。
*@authorliaowp
**/
public classLittleLead {privateCommand command;publicCommand getCommand() {returncommand;
}public voidsetCommand(Command command) {this.command =command;
}public void action(){//小領(lǐng)導(dǎo)執(zhí)行命令,小領(lǐng)導(dǎo)在叫員工執(zhí)行
command.execute();
}
}
需要具體的執(zhí)行命令,不然不知道應(yīng)該干嘛呢。那就來一個(gè)執(zhí)行命令
packagecom.roc.command;/*** 程序員執(zhí)行命令
*@authorliaowp
**/
public class CodeCommand extendsCommand{public voidexecute() {super.codeWorkMan.work();//工作
super.codeWorkMan.overWork();//加班
super.codeWorkMan.writeDocument();//寫文檔
}
}
這樣好的場(chǎng)景需要有一個(gè)場(chǎng)景模擬吧,客戶端咯
packagecom.roc.command;/*** 模擬大領(lǐng)導(dǎo) 命令模式
*@authorliaowp
**/
public classClient {public static void main(String[] args) {//領(lǐng)導(dǎo)發(fā)命令,并不用關(guān)心你的工作,發(fā)命令就可以。具體怎么搞,你們自己搞去
Command command=new CodeCommand();//命令
LittleLead lead=new LittleLead(); //小領(lǐng)導(dǎo)
lead.setCommand(command);
lead.action();
}
}
整個(gè)命令模式就是領(lǐng)導(dǎo)發(fā)命令叫你干事情,并不用管你怎么搞,發(fā)出一條命令,命令需要先思考,先生成命令,然后領(lǐng)導(dǎo)想到命令了,領(lǐng)導(dǎo)發(fā)命令,干事情的是程序員。命令模式,果然有點(diǎn)叼呀。
總結(jié)
以上是生活随笔為你收集整理的java.awt.action 命令模式_java设计模式之命令模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 多线程共享数据_Java多线程
- 下一篇: wpf中内容包含在border中_WPF