原创 設計模式——僱工模式

僱工模式 僱工模式也叫做僕人模式(Servant Design Pattern):行爲模式的一種,它爲一組類提供通用的功能,而不需要類實現這些功能,它是命令模式的一種擴展或者說是命令模式的一種簡化。 類圖中: IServiced接口定義

原创 設計模式——黑板模式

黑板模式 黑板模式(Blackboard Design Pattern)是觀察者模式的一個擴展:允許消息的讀寫同時進行,廣泛地交互消息。 黑板模式允許多個消息讀寫者同時存在,消息的生產者和消費者完全分開,兩者在空間和時間上可以解耦,並且互

原创 新設計模式——空對象模式

空對象模式 空對象模式(Null Object Pattern):通過實現一個默認的無意義對象來避免null值出現。簡單地說,就是爲了避免在程序中出現null值判斷而誕生的一種常用設計方法。 這裏我們通過一個簡單的例子進行介紹: (1)我

原创 設計模式——對象池模式

對象池模式 對象池模式,也稱對象池服務,通過循環使用對象,減少資源在初始化和釋放時的昂貴損耗。 簡單地說,在需要時,從池中提取;不用時,放回池中,等待下一個請求。典型例子是連接池和線程池。 public abstract class

原创 新設計模式——規格模式

規格模式 規格模式(Specification Pattern):它是組合模式的一種特殊應用。同時,每個規格書都是一個策略,它完成了一系列邏輯的封裝。 抽象規格書ISpecification: public interface ISp

原创 混合模式:工廠方法模式+策略模式

通過下面這個實例對組合方法進行分析:某公司“一卡通”聯機交易子系統,類似於銀行的交易系統。 IC卡上有以下兩種金額: 固定金額:員工不能提現的金額,只能用來特定消費,如食堂內吃飯、理髮、健身等。 自由金額:可以提現的,也可用於消費。 每個

原创 混合模式:觀察者模式+中介者模式

有一個產品它有多個觸發事件,它產生的時候觸發一個創建事件,修改的時候觸發修改事件,刪除的時候觸發刪除事件,這就類似於我們的文本框,初始化(也就是創建)的時候要觸發一個onLoad或onCreate事件,修改的時候觸發onChange事件,

原创 不同類型模式對比(策略模式 VS 橋樑模式——中介者模式 VS 門面模式)

策略模式 VS 橋樑模式 策略模式:是使用繼承和多態建立一套可以自由切換算法的模式;只有一個抽象角色,可以沒有實現,也可以有很多實現。 橋樑模式:是在不破壞封裝的前提下解決抽象和實現都可以獨立擴展的模式。有兩個“橋墩”——抽象化角色和實現

原创 設計模式中的5種包裝模式對比

5種包裝模式 包裝模式包括:代理模式、裝飾模式、適配器模式、橋樑模式、門面模式。 相似的特徵:都是通過委託的方式對一個對象或一系列對象施行包裝。從實現的角度來看,它們都是代理的一種具體表現形式。 使用場景的區別: 代理模式:主要用在不希望

原创 混合模式:命令模式+責任鏈模式

這裏我們使用命令模式、責任鏈模式、模板方法模式,製作一個把UNIX上的命令移植到Windows上的工具。 UNIX下的命令,一條命令分爲命令名、選項和操作數,例如命令"ls -l /usr"。其中,ls是命令名,l是選項,/usr是操作數

原创 設計模式中的行爲類模式

設計模式中的行爲類模式 行爲類模式包括責任鏈模式、命令模式、解釋器模式、迭代器模式、中介者模式、備忘錄模式、觀察者模式、狀態模式、策略模式、模板方法模式、訪問者模式。 責任鏈模式:方向是單一的。(上訪,直到有一方給你直接回應) 命令模式:

原创 設計模式中的結構類模式

設計模式中的結構類模式 結構類模式包括適配器模式、橋樑模式、組合模式、裝飾模式、門面模式、享元模式和代理模式。 適配器模式:修飾非血緣關係類,把一個非本家族的對象僞裝成本家族的對象,因此它的本質還是非相同接口的對象。(適配器) 橋樑模式:

原创 設計模式中的創建類模式

設計模式中的創建類模式 創建類模式包括工廠方法模式、建造者模式、抽象工廠模式、單例模式和原型模式。 單例模式:要保持在內存中只有一個對象。 原型模式:要求通過複製的方式產生一個新的對象。實現Cloneable接口,並覆蓋和重寫clone(

原创 設計模式——中介者模式(調停者模式)

中介者模式 中介者模式:用一箇中介對象封裝一系列的對象交互,中介者使各對象不需要顯示地相互作用,從而使其耦合鬆散,而且可以獨立地改變它們之間的交互。 組成部分: Mediator抽象中介者:定義統一的接口,用於各同事角色之間的通信。 C

原创 六大設計原則(簡述)

單一職責原則 單一職責原則(Single Responsibility Principle,SRP):要求一個接口或類有且僅有一個原因引起變化,也就是一個接口或類只有一個職責,它就負責一件事情。 好處: 類的複雜性降低,實現什麼職責都有清