命令模式例述

2021-06-04 13:41:55 字數 773 閱讀 9955

君命有所不受

--《孫子兵法》

國君令將班師回朝,其流程為,國君將其君班師令交給傳令太監,傳令太監將君令傳給將軍,至於將軍回不回朝,那便是將軍的事了。這便是命令模式的典型應用。其靜態類圖如圖一所示:

備註:我們常在一些書籍中看到講解一些理論時,舉的一些生動的例子,筆者認為,這些例子不是為了讓我理解這些理論,而是當我們理解後,易於記憶。本例亦如是。

命令模式的目的是把司令者的責任與執令者的責任分開,交給不同的物件來執行,使得司令者物件與執令者物件相互獨立,降低耦合。所以命令模式使得置入新的命令相當容易。比如,國君又一詔曰:封狼居胥,則其類圖如圖二所示:

圖二 將受令之後決定先封狼居胥後班師還朝,其原始碼如下:

public class 傳令太監

}public void addcommand(令 cmd)

public void removecommand(令 cmd)

}public class 將

public void 封狼居胥()

}public inte***ce 君令

public class 班師 implements 君令//本例中,將將的物件傳入,是因為有些情況下,需要初始一些狀態資訊給將。

@override

public void 執令()

}public class 封狼居胥 implements 君令

@override

public void 執令()

}public class 君

}

設計模式 1 總述

物件導向三大特性 物件導向六大原則 子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法。子類中可以增加自己特有的方法。當子類的方法過載父類的方法時,方法的前置條件 即方法的形參 要比父類方法的輸入引數更寬鬆。當子類的方法實現父類的抽象方法時,方法的後置條件 即方法的返回值 要比父類更嚴格。23種...

4 設計模式總述

1.從今天開始 就詳細介紹各個設計模式了。設計模式總共可以分為三大類 1.建立型設計模式 簡單理解為 物件怎麼來 2.結構型設計模式 簡單理解為 物件和誰有關係 3.行為型設計模式 簡單理解為 物件與物件在幹嘛 說明 1.在正式開講設計模式之前 先說說設計模式是什麼 設計模式其實就是一種設計思想,是...

單例模式 單例模式

餓漢式 急切例項化 public class eagersingleton 2.宣告靜態成員變數並賦初始值 類初始化的時候靜態變數就被載入,因此叫做餓漢式 public static eagersingleton eagersingleton new eagersingleton 3.對外暴露公共的...