PHP設計模式

 

設計模式總的分爲三種,建立型模式、結構性模式、行爲型模式php

一、建立型模式html

建立型模式爲根據實際狀況來建立對象,建立的模式又分爲對象建立模式和類建立模式,對象建立模式會把對象建立的一部分在另外一個對象中實現,類建立模式則將它對象的建立在子類中實現。mysql

二、結構性模式web

結構性模式爲處理模塊之間的耦合關係算法

三、行爲型模式sql

行爲型模式數據庫

 

建立型 (Creational)
一、簡單工廠(Simple Factory):不一樣於靜態工廠是由於不使用static方法
二、工廠方法(Simple Factory):一個class建立一個你想要使用的對象 [code] http://www.phptherightway.com/pages/Design-Patterns.html
三、抽象工廠(Abstract Factor):不使用特定的類來建立相關或是不相關的對象,建立的類都繼承相同的接口,抽象工廠不關心對象是如何建立的,he just knows how they go together
四、生成器 (Builder):一個接口,用來建立複雜對象的部分
五、原型 (Prototype):經過建立一個原型對象,而後複製原型(clone)對象來避免經過標準的方式建立大量的對象產生的開銷
六、單例 (Singleton):當設計一個web應用的時候,保證一個類僅有一個實例,並提供一個訪問他的全局訪問點例如框架中的數據庫鏈接 [code]http://www.phptherightway.com/pages/Design-Patterns.html
七、靜態工廠(Static Factory):和簡單工廠很像,只是使用了靜態對象
八、對象池 (pool):對新建立的對象應用一系列的初始化操做,讓對象保持當即可以使用的狀態
九、多例 (Multition):使類僅有一個命名的對象的集合可供使用,像單例模式可是有多個實例。好比2 個數據庫鏈接,好比,一個鏈接MySQL,另外一個鏈接SQLite設計模式

結構型 (Structural)
一、適配器 (Adapter):將不一樣接口適配成統一的API接口,例如數據操做有mysql、mysqli、pdo等,可利用適配器模式統一接口
二、橋接模式 (Bridge):將抽象部分與它的實現部分分離,使它們均可以獨立的變化
三、合成模式 (Composite):將對象組合成樹形結構以表示「部分總體」的層次結構。組合模式使得用戶對單個對象和組合對象的使用具備一致性。
四、裝飾器模式(Decorater):不修改原類代碼和繼承的狀況下動態擴展類的功能,例如框架的每一個Controller文件會提供before和after方法
五、外觀模式 (Facade):是指提供一個統一的接口去訪問多個子系統的多個不一樣的接口,它爲子系統中的一組接口提供一個統一的高層接口。使用子系統更容易使用。
六、享元模式 (Flyweight):把常常要使用到的對象共享起來,而不去重新建立而佔用內存。 http://lobert.iteye.com/blog/2066311
七、代理模式 (Proxy):爲昂貴或者沒法複製的資源提供接口
八、註冊模式 (Registry):爲應用中經常使用的對象實現一箇中央存儲,一般用一個只有靜態方法的抽象類來實現(或者使用單例模式)框架

行爲型(Behavioral)
一、責任鏈模式 (Chain of Responsibilities):使多個對象都有機會處理請求,從而避免請求的發送者和接受者耦合的關係。將這個對象造成一條鏈,並沿着這條鏈傳遞該請求,直到有對象處理它爲止。
二、命令模式 (Command):命令模式是對命令的封裝。命令模式把發出命令的責任和執行命令的責任分割開,委派給不一樣的對象。
三、解釋器模式 (Interpreter):用於分析一個實體的關鍵元素,而且針對每一個元素提供本身的解釋或相應動做
四、迭代器模式 (Iterator):提供一個方法順序訪問一個聚合對象中各個元素,在PHP中將繼承Iterator類
五、中介者模式 (Mediator):用一箇中介者對象來封裝一系列的對象交互。中介者使得各對象不須要顯式地相互引用,從而使其鬆散耦合,並且能夠獨立地改變它們之間的交互。
六、備忘錄模式 (Memento):在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象以外保存這個狀態。這樣能夠在之後把該對象的狀態恢復到以前保存的狀態。
七、觀察者模式 (Observer):定義對象間一種一對多的依賴關係,當一個對象的狀態發生改變時,全部依賴於它的對象都獲得通知並自動更新。如微博關注博主,博主更新,關注者都能獲得通知
八、狀態模式 (State):狀態模式容許一個對象在其內部狀態改變的時候改變其行爲。這個對象看上去就像是改變了它的類同樣
九、策略模式 (Strategy):針對一組算法,將每個算法封裝到具備共同接口的獨立的類中,例如進入我的主頁時,根據瀏覽者的不一樣,給予不一樣的顯示與操做 [code]http://www.phptherightway.com/pages/Design-Patterns.html
十、模板方法模式(Template Method):定義一個操做中的算法的骨架,而將一些步驟延遲到子類中。Template Method 使得子類能夠在不改變一個算法的結構的狀況下重定義該算法的某些特定的步驟
十一、訪客模式 (Visitor): 訪問者模式表示一個做用於某對象結構中的各元素的操做。它使你能夠在不改變各元素類的前提下定義做用於這些元素的新操做。ui

相關文章
相關標籤/搜索