按照目的來分,設計模式可以分為建立型模式、結構型模式和行為型模式。
按照目的來分,可分為建立型模式、結構型模式和行為型模式。
建立型模式:工廠模式(工廠方法、抽象工廠、建造者、原型、單例)
結構型模式:連線模式(介面卡、橋接、組合、修飾者、外觀、享元、**)
行為型模式:責任鏈、命令、直譯器、迭代器、中介者、備忘錄、觀察者、狀態、策略、模板方法、訪問者模式。
建立型模式用來處理物件的建立過程;結構型模式用來處理類或者物件的組合;行為型模式用來對類或物件怎樣互動和怎樣分配職責進行描述。
建立型模式用來處理物件的建立過程,主要包含以下5種設計模式:
1,工廠方法模式
(factory method pattern)的用意是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類中。
2,抽象工廠模式
(abstract factory pattern
)的意圖是提供乙個建立一系列相關或者相互依賴的介面,而無需指定它們具體的類。
3,建造者模式
(builder pattern)的意圖是將乙個複雜的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。
4,原型模式
(prototype pattern)是用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。
5,單例模式
(singleton pattern
)是保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。
結構型模式用來處理類或者物件的組合,主要包含以下7
種設計模式:
6,介面卡模式
(adapter pattern
)是將乙個類的介面轉換成客戶希望的另外乙個介面。使得原本由於介面不相容而不能一起工作的那些類可以一起工作。
7,橋接模式
(bridge pattern
)是將抽象部分與實際部分分離,使它們都可以獨立的變化。
8,組合模式
(composite pattern
)是將物件組合成樹形結構以表示「部分--
整體」的層次結構。使得使用者對單個物件和組合物件的使用具有一致性。
9,裝飾者模式
(decorator pattern
)動態的給乙個物件新增一些額外的職責。就增加功能來說,此模式比生成子類更為靈活。
10,外觀模式
(facade pattern
)是為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。
11,享元模式
(flyweight pattern
)是以共享的方式高效的支援大量的細粒度的物件。
12,**模式
(proxy pattern
)就是為其他物件提供一種**以控制對這個物件的訪問。
行為型模式用來對類或物件怎樣互動和怎樣分配職責進行描述,主要包含以下11
種設計模式:
13,責任鏈模式
(chain of responsibility pattern
),在該模式裡,很多物件由每乙個物件對其下家的引用而連線起來形成一條鏈。請求在這個鏈上傳遞,直到鏈上的某乙個物件決定處理此請求,這使得系統可以在不影響客戶端的情況下動態地重新組織鏈和分配責任。
14,命令模式
(command pattern
)是將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶端進行引數化;對請求排隊或記錄請求日誌,以及支援可撤銷的操作。
15,直譯器模式
(interpreter pattern
)就是描述了如何為簡單的語言定義乙個語法,如何在該語言中表示乙個句子,以及如何解釋這些句子。
16,迭代器模式
(iterator pattern
)是提供了一種方法順序來訪問乙個聚合物件中的各個元素,而又不需要暴露該物件的內部表示。
17,中介者模式
(mediator pattern
)就是定義乙個中介物件來封裝系列物件之間的互動。終結者使各個物件不需要顯示的相互呼叫 ,從而使其耦合性鬆散,而且可以獨立的改變他們之間的互動。
18,備忘錄模式
(memento pattern
)是在不破壞封裝的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。
19,觀察者模式
(observer pattern
)定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新。
20,狀態模式
(state pattern
)就是允許乙個物件在其內部狀態改變時改變它的行為,使物件看起來似乎修改了它的類。
21,策略模式
(strategy pattern
)就是準備一組演算法,並將每乙個演算法封裝起來,使得它們可以互換。
22,模板方法模式
(template method pattern
)使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。
23,訪問者模式
(visitor pattern
)就是表示乙個作用於某物件結構中的各元素的操作,它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。
一句話設計模式
提供乙個建立一系列或相關依賴物件的介面,而無需指定它們具體的類 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示 3.工廠方法模式 factorymethod 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,使得乙個類的例項化延遲到其子類 4.原型模式 prototyp...
一句話 道出設計模式
近段時間漸覺自己愚弱,感覺各方面都有些透支。索性去腦補一下設計模式。講真,之前對此也是一知半解,未曾有太多研究,此番也是做簡單了解,參考園裡大神做些紀要。於是乎,我又一次發覺其實在日常擼碼中已經隱隱約約用到了各種設計模式 你覺得夢想很遠,其實你已經在路上了 比如,資料庫連線池用到了單例模式 比如,流...
一句話歸納設計模式
通過 23種設計模式全面解析 教程,我們已經學習完了經典的 23 種設計模式。下面總結一下這 23 種設計模式,以方便小夥伴們日後複習和查閱。分類設計模式 簡述一句話歸納 目的生活案例 建立型設計模式 簡單來說就是用來建立物件的 工廠模式 factory pattern 不同條件下建立不同例項 產品...