設計模式簡單記錄

單例模式

工廠模式

建造者模式 將一個複雜對象的構建分成幾部分,比如汽車零件的分別建造

原型模式 用原型實例制定創建對象的種類,並通過拷貝這些原型的創建新的對象。爲每個類先創建一個對象,以後需要某種對象的時候,通過clone創建,比如我們項目裏通過協議id創建具體協議對象

迭代器模式

命令模式 根據調用者的命令去做事情

解釋器模式

責任鏈模式 多個handler鏈成一個鏈,比如jsp裏的filter鏈

觀察者模式 當一個對象的狀態改變時,所以註冊過的監聽者都會得到通知

中介者模式 用一箇中介對象封裝一系列的對象交互,各對象通過中介者相互作用,彼此之間耦合鬆散

備忘錄模式 可以獲取對象的內部狀態,在對象外部可以保存這個狀態,以後就可以將對象恢復到原來保存的狀態

狀態模式 當一個對象的內在狀態改變時,其行爲也會改變,大概相當於狀態機

策略模式 定義一組算法,將每個算法封裝起來,並且使它們之間可以互換

模板方法模式 父類中定義一個操作中的算法的框架,將一些步驟延遲到子類實現

訪問者模式 調用對象的方法時傳入一個函數,該函數可以操作對象內部的數據,大概像函數式語言中的給一個函數傳入一個回調函數

適配器模式

組合模式 樹形結構

代理模式

橋接模式 將抽象和實現解耦,比如我們項目中的player和player_imp,不過player也有部分實現

裝飾模式 動態的給對象添加一些額外的功能,大概就是添加一箇中間層的意思

門面模式 要求一個子系統的外部與其內部的通信必須通過一個統一的對象進行

享元模式 使用共享對象

“任何軟件工程遇到的問題都可以通過增加一箇中間層來解決”,以上很多模式本質都是直接添加一箇中間層,如門面模式、裝飾模式、適配器模式等。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章