設計模式主要分為三大類,各自還有許多子類:
模式名描述
抽象工廠模式
為乙個產品族提供了統一的建立介面。當需要這個產品族的某一系列的時候,可以從抽象工廠中選出相應的系列建立乙個具體的工廠類。
工廠方法模式
定義乙個介面用於建立物件,但是讓子類決定初始化哪個類。工廠方法把乙個類的初始化下放到子類。
生成器模式
將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。
惰性初始模式
推遲物件的建立、資料的計算等需要耗費較多資源的操作,只有在第一次訪問的時候才執行。
物件池模式
通過**利用物件避免獲取和釋放資源所需的昂貴成本。
原型模式
用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。
單例模式
確保乙個類只有乙個例項,並提供對該例項的全域性訪問。
模式名描述
介面卡模式
將某個類的介面轉換成客戶端期望的另乙個介面表示。介面卡模式可以消除由於介面不匹配所造成的類相容性問題。
橋接模式
將乙個抽象與實現解耦,以便兩者可以獨立的變化。
組合模式
把多個物件組成樹狀結構來表示區域性與整體,這樣使用者可以一樣的對待單個物件和物件的組合。
修飾模式
向某個物件動態地新增更多的功能。修飾模式是除類繼承外另一種擴充套件功能的方法。
外觀模式
為子系統中的一組介面提供乙個一致的介面, 外觀模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。
享元通過共享以便有效的支援大量小顆粒物件。
**為其他物件提供乙個**以控制對這個物件的訪問。
模式名描述
黑板廣義的觀察者在系統範圍內交流資訊,允許多位讀者和寫者。
責任鏈為解除請求的傳送者和接收者之間耦合,而使多個物件都有機會處理這個請求。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它。
命令將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行引數化;對請求排隊或記錄請求日誌,以及支援可取消的操作。
直譯器給定乙個語言, 定義它的文法的一種表示,並定義乙個直譯器, 該直譯器使用該表示來解釋語言中的句子。
迭代器提供一種方法順序訪問乙個聚合物件中各個元素, 而又不需暴露該物件的內部表示。
中介者包裝了一系列物件相互作用的方式,使得這些物件不必相互明顯作用,從而使它們可以鬆散偶合。當某些物件之間的作用發生改變時,不會立即影響其他的一些物件之間的作用,保證這些作用可以彼此獨立的變化。
備忘錄備忘錄物件是乙個用來儲存另外乙個物件內部狀態的快照的物件。備忘錄模式的用意是在不破壞封裝的條件下,將乙個物件的狀態捉住,並外部化,儲存起來,從而可以在將來合適的時候把這個物件還原到儲存起來的狀態。
空物件通過提供預設物件來避免空引用。
觀察者模式
在物件間定義乙個一對多的聯絡性,由此當乙個物件改變了狀態,所有其他相關的物件會被通知並且自動重新整理。
規格以布林形式表示的可重繫結的商業邏輯。
狀態讓乙個物件在其內部狀態改變的時候,其行為也隨之改變。狀態模式需要對每乙個系統可能獲取的狀態創立乙個狀態類的子類。當系統的狀態變化時,系統便改變所選的子類。
策略定義乙個演算法的系列,將其各個分裝,並且使他們有互動性。策略模式使得演算法在使用者使用的時候能獨立的改變。
模板方法
模板方法模式準備乙個抽象類,將部分邏輯以具體方法及具體構造子類的形式實現,然後宣告一些抽象方法來迫使子類實現剩餘的邏輯。不同的子類可以以不同的方式實現這些抽象方法,從而對剩餘的邏輯有不同的實現。先構建乙個頂級邏輯框架,而將邏輯的細節留給具體的子類去實現。
訪問者封裝一些施加於某種資料結構元素之上的操作。一旦這些操作需要修改,接受這個操作的資料結構可以保持不變。訪問者模式適用於資料結構相對未定的系統,它把資料結構和作用於結構上的操作之間的耦合解脫開,使得操作集合可以相對自由的演化。
PHP的設計模式
常用的 php的設計模式 1.單例模式 顧名思義,就是只有乙個例項。作為物件的建立模式,單例模式確 保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。為什麼要使用php單例...
php設計 PHP常用設計模式
1 單例模式指在整個應用中只有乙個物件例項的設計模式 class single public rand static private instance 類直接呼叫 final private function construct private防止外部new this rand mt rand 1,...
PHP設計模式 工廠設計模式
工廠模式,如其名稱一樣,就是乙個工廠,用於建立產品。使用工廠模式的好處就是請求者只需要發出請求,具體的例項化過程交給工廠模式,省去了new的過程。並且如果後期開發,類名發生變化,只需要調整工廠模式中一行new相關 不需要修改一大堆 最簡單的工廠模式,實際上就是乙個switch case結構,通過傳入...