原创 (二)設計模式-觀察者模式

1、定義 觀察者模式又叫做發佈-訂閱(Public/Subscribe)模式。 定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態發生變化時,會通知所有的觀察者對象,使他們能夠自動更新自己。 2

原创 (八)設計模式-迭代器模式

1、定義 提供一種方法順序訪問一個聚合對象中各個元素,而又不暴露該對象的內部表示。 2、使用場景 小明和小王一同上了公交車,車上都是成人,售票員從頭到尾一個個提醒乘客付費買票,當然售票員也可以從尾到頭的方式進行提醒乘客買票。任何一

原创 (四)設計模式-命令模式

1、定義 將一個請求封裝爲對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日誌,以及支持可撤銷的操作。 2、使用場景 燒烤店烤串,出現三個角色:買串人、服務員、烤肉師傅。 買串人點了5串烤肉,5串烤雞翅 ,2串土

原创 (十八)設計模式-狀態模式

1、定義 (State)當一個對象的內在狀態改變時允許變其行爲,這個對象看起來像是改變了其類。 2、使用場景 9點 上午工作 ,精神百倍 10點 上午工作,精神百倍 12點 餓了,午飯,犯困,午休 13點 下午狀態還不錯,繼續努力

原创 (六)設計模式-單例模式

1、定義 保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。 注意:Head First 中提到單例模式的時候,類構造函數爲私有(private) ,通過靜態方法創建實例。 2、使用場景 剛解放時,國家需要人,人多力量大,

原创 (一)設計模式-策略模式

1、定義 它定義了算法家族,分別封裝起來,讓他們之間可以相互替換,此模式讓算法的變化,不會影響到使用算法的客戶。 2、使用場景 一個商場收銀軟件客戶端,營業員根據客戶所購買商品的單價和數量,向客戶收費。 有以下幾種情況: (1)、

原创 (十六)設計模式-組合模式

1、定義 (Composite)將對象組合成樹形機構以表示,“部分-整體”的層次結構。組合模式使得用戶對單個對象和組合對象的使用具有一致性。 2、使用場景 北京總公司總部下屬三個機構:人力資源部、上海華東分公司、財務部門;上海華東

原创 (十三)設計模式-橋接模式

1、定義 (Bridge)將抽象部分與它的實現部分分離,是他們都可以獨立地變化。 2、使用場景 有一個N品牌的手機,這個手機上有一個小遊戲,也有通訊錄軟件,然後又有一個M品牌的手機,同時也有小遊戲,和通訊錄軟件。如果有更多的手機品

原创 (十四)設計模式-職責鏈模式

1、定義 (Chain of Responsibility)使多個對象都有機會處理請求,從而避免請求的發送者和接收者之間的耦合關係。將這個對象連成一條鏈,沿着這條鏈傳遞該請求,直到有一個對象處理它爲止。 2、使用場景 一個普通職員

原创 (十五)設計模式-備忘錄模式

1、定義 (Memento)在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。這樣就可將該對象恢復到原先保存的狀態。 2、使用場景 在玩一些單機的PC遊戲的時候,通常都在打大Boss之前,先保存一個進度,

原创 (二十一)設計模式-模板方法模式

1、定義 (Template)定義一個操作中的算法的骨架,而將一些步驟延遲到之類中。模板方法使得之類可以不改變一個算法的機構即可重定義該算法的某些特定步驟。 2、使用場景 學生甲和學生乙兩個抄試卷標題,然後各自提交不同的答案,同時

原创 (二十)設計模式-外觀模式

1、定義 (Facade)爲子系統中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口是的這一子系統更加容易使用。 2、使用場景 散戶投資情況,爲了降低風險而購買了基金,專業的基金經理人會去購買一些股票,國債、房地產

原创 (十七)設計模式-建造者模式

1、定義 (Builder)將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。 2、使用場景 用程序畫一個小人,這在遊戲程序裏非常常見,要求十小人要有頭、身體、兩手、兩腳就可以了。 3、代碼結構UML圖

原创 (三)設計模式-適配器模式

1、定義 將一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。 2、使用場景 小明會中文,不會英語,要在美國NBA打球,不會英語如何交流?沒有交流如何理解教練和同

原创 (九)設計模式-訪問者模式

1、定義 表示一個作用於某對象結構中的各元素操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。 2、使用場景 男人成功時,背後多半有一個偉大的女人; 女人成功時,背後多半有一個不成功的男人; 男人失敗時,悶頭喝