定義:請(qǐng)求以命令的形式包裹在對(duì)象中,并傳給調(diào)用對(duì)象。調(diào)用對(duì)象尋找可以處理該命令的合適的對(duì)象,并把該命令傳給相應(yīng)的對(duì)象,該對(duì)象執(zhí)行命令。
特點(diǎn):
1、降低了系統(tǒng)耦合度。
2、新的命令可以很容易添加到系統(tǒng)中去。
企業(yè)級(jí)開(kāi)發(fā)和常用框架中的應(yīng)用:事務(wù),struts的action控制器
實(shí)例:
public class Demo { public static void main(String[] args) { Reicever reicever = new Reicever(); Command command = new ActualCommand(reicever); Invoker invoker = new Invoker(); invoker.addCommand(command); invoker.call(); }}/** * 命令真正的執(zhí)行者,對(duì)于不同的命令可能有不同的命令執(zhí)行者  */class Reicever{ public void action(){ System.out.println("Reicever.action()"); }}/** * 命令接口,也為了后面統(tǒng)一后面的命令  */interface Command{ public void excute();}/** * 實(shí)際命令對(duì)象,可能有很多不同的命令對(duì)象  */class ActualCommand implements Command{ private Reicever reicever; public ActualCommand(Reicever reicever) { this.reicever = reicever; } public void excute() { reicever.action(); }}/** * 命令發(fā)出者  */class Invoker{ private List<Command> commands = new ArrayList<>();  public void addCommand(Command command){ commands.add(command); }  public void call(){ for(Command c:commands){ c.excute(); } } }命令模式單獨(dú)是用的情況很少,一般都是和備忘錄模式組合是用。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選