1. 程式人生 > >寫給所有程式設計師_那些年我們常用的設計模式

寫給所有程式設計師_那些年我們常用的設計模式

寫的不一定準,是個人的理解,方便找合適的設計模式來用。這篇寫的不對的儘管噴,歡迎提建議。

工廠方法模式
使用工廠類間接創造某類物件,每個工廠類只創造一類物件。

抽象工廠
每個工廠類可以產生多種物件,多個工廠可以共享一個介面。

單例模式:
使用特殊方式,保證只存在唯一的物件。

建造者模式:
物件內部需要多種元素組成,但每個元素都可能要或不要。

原型模式:
某些物件的一些變數值相同,將已有物件的變數值拷貝到新的物件中。

介面卡模式:
物件配置介面卡,介面卡實現介面,間接完成介面的匹配。

裝飾器模式
裝飾器類對物件進行操作,或操作組合,外部通過呼叫裝飾器類間接處理物件。

代理模式
可直接操作物件或者通過代理操作物件,適合多個地方開啟統一功能的地方。

外觀模式
隱藏操作細節,暴露必要的介面。

橋接模式
多種類別劃分,使用其中一個間接操縱方式連線其他的。

組合模式
樹枝和樹葉的關係,可完成層層疊加

享元模式
使用靜態方式保持資料唯一,個人不大喜歡,因為java的垃圾回收會回收靜態物件,唯一試用的大概是全域性使用者物件。

策略模式
臨時裝載一種計算方式,如騎行某段路程到達時間和自駕某段路程到達時間。

模板方法模式
繼承抽象類的具體子類。

觀察者模式(訂閱者)模式
多個類關聯一個類,這個類改變多個類也要改變。

迭代子模式(Iterator模式)
讓普通的類可以使用Cursor

責任鏈模式
層層下發任務,下級處理,上級獲取結果

命令模式
每個命令建立類,操作者接入命令就能完成操作。

備忘錄模式
建立存檔,需要回退時恢復到該狀態。

狀態模式
建立多個狀態類,建立操作介面,當狀態改變時修改狀態並改變狀態。

訪問者模式
對於外部類的訪問,建立特定的物件和方法,只為它提供其需要的有限資料。

中介者模式
協調多個元素的關聯部分,完成多元素排程。

直譯器模式
自定義小型編譯器,對於不能重寫運算子的程式語言比較有用。