見面禮,設計模式簡介

1.設計模式的類型

根據設計模式的參考書 Design Patterns - Elements of Reusable Object-Oriented Software(中文譯名:設計模式 - 可複用的面向對象軟件元素) 中所提到的,總共有 23 種設計模式。這些模式可以分爲三大類:創建型模式(Creational Patterns)、結構型模式(Structural Patterns)、行爲型模式(Behavioral Patterns)。當然,我們還會討論另一類設計模式:J2EE 設計模式。

 

序號

模式 & 描述

包括

1

創建型模式

這些設計模式提供了一種在創建對象的同時隱藏創建邏輯的方式,而不是使用 new 運算符直接實例化對象。這使得程序在判斷針對某個給定實例需要創建哪些對象時更加靈活。

1.工廠模式(Factory Pattern)

2.抽象工廠模式(Abstract Factory Pattern)

3.單例模式(Singleton Pattern)

4.建造者模式(Builder Pattern)

5.原型模式(Prototype Pattern)

2

結構型模式

這些設計模式關注類和對象的組合。繼承的概念被用來組合接口和定義組合對象獲得新功能的方式。

1.適配器模式(Adapter Pattern)

2.橋接模式(Bridge Pattern)

3.過濾器模式(Filter、Criteria Pattern)

4.組合模式(Composite Pattern)

5.裝飾器模式(Decorator Pattern)

6.外觀模式(Facade Pattern)

7.享元模式(Flyweight Pattern)

8.代理模式(Proxy Pattern)

3

行爲型模式

這些設計模式特別關注對象之間的通信。

1.責任鏈模式(Chain of Responsibility Pattern)

2.命令模式(Command Pattern)

3.解釋器模式(Interpreter Pattern)

4.迭代器模式(Iterator Pattern)

5.中介者模式(Mediator Pattern)

6.備忘錄模式(Memento Pattern)

7.觀察者模式(Observer Pattern)

8.狀態模式(State Pattern)

9.空對象模式(Null Object Pattern)

10.策略模式(Strategy Pattern)

11.模板模式(Template Pattern)

12.訪問者模式(Visitor Pattern)

4

J2EE 模式

這些設計模式特別關注表示層。這些模式是由 Sun Java Center 鑑定的。

1.MVC 模式(MVC Pattern)

2.業務代表模式(Business Delegate Pattern)

3.組合實體模式(Composite Entity Pattern)

4.數據訪問對象模式(Data Access Object Pattern)

5.前端控制器模式(Front Controller Pattern)

6.攔截過濾器模式(Intercepting Filter Pattern)

7.服務定位器模式(Service Locator Pattern)

8.傳輸對象模式(Transfer Object Pattern)

 

下面用一個圖片來整體描述一下23中常用設計模式之間的關係:

2.設計模式的六大原則

2.1、開閉原則(Open Close Principle)

開閉原則的意思是:對擴展開放,對修改關閉。在程序需要進行拓展的時候,不能去修改原有的代碼,實現一個熱插拔的效果。簡言之,是爲了使程序的擴展性好,易於維護和升級。想要達到這樣的效果,我們需要使用接口和抽象類,後面的具體設計中我們會提到這點。

 

2.2、里氏代換原則(Liskov Substitution Principle)

里氏代換原則是面向對象設計的基本原則之一。 里氏代換原則中說,任何基類可以出現的地方,子類一定可以出現。LSP 是繼承複用的基石,只有當派生類可以替換掉基類,且軟件單位的功能不受到影響時,基類才能真正被複用,而派生類也能夠在基類的基礎上增加新的行爲。里氏代換原則是對開閉原則的補充。實現開閉原則的關鍵步驟就是抽象化,而基類與子類的繼承關係就是抽象化的具體實現,所以里氏代換原則是對實現抽象化的具體步驟的規範。

 

2.3、依賴倒轉原則(Dependence Inversion Principle)

這個原則是開閉原則的基礎,具體內容:針對接口編程,依賴於抽象而不依賴於具體。

 

2.4、接口隔離原則(Interface Segregation Principle)

這個原則的意思是:使用多個隔離的接口,比使用單個接口要好。它還有另外一個意思是:降低類之間的耦合度。由此可見,其實設計模式就是從大型軟件架構出發、便於升級和維護的軟件設計思想,它強調降低依賴,降低耦合。

 

2.5、迪米特法則,又稱最少知道原則(Demeter Principle)

最少知道原則是指:一個實體應當儘量少地與其他實體之間發生相互作用,使得系統功能模塊相對獨立。

 

2.6、合成複用原則(Composite Reuse Principle)

合成複用原則是指:儘量使用合成/聚合的方式,而不是使用繼承。

發佈了13 篇原創文章 · 獲贊 1 · 訪問量 6997
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章