1. 程式人生 > >設計模式 總結

設計模式 總結

type 繼承 oat 橋接模式 ref 可復用 ble run cat

回顧一下曾經學了又忘的差不多的知識點,在此記錄一下,以便日後溫習。

參考資料:http://www.runoob.com/design-pattern/design-pattern-intro.html

持續更新中...

設計模式簡介

概述:

設計模式(Design pattern)代表了最佳的實踐,通常被有經驗的面向對象的軟件開發人員所采用。設計模式是軟件開發人員在軟件開發過程中面臨的一般問題的解決方案。

設計模式是一套被反復使用的、多數人知曉的、經過分類編目的、代碼設計經驗的總結。

目的:

為了重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。

應用:

項目中合理地運用設計模式可以完美地解決很多問題,每種模式在現實中都有相應的原理來與之對應,每種模式都描述了一個在我們周圍不斷重復發生的問題,以及該問題的核心解決方案,這也是設計模式能被廣泛應用的原因。

GOF(四人幫,全拼 Gang of Four)

在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名為 Design Patterns - Elements of Reusable Object-Oriented Software(中文譯名:設計模式 - 可復用的面向對象軟件元素) 的書,該書首次提到了軟件開發中設計模式的概念。

四位作者合稱 GOF(四人幫,全拼 Gang of Four)。他們所提出的設計模式主要是基於以下的面向對象設計原則。

  • 對接口編程而不是對實現編程。
  • 優先使用對象組合而不是繼承。

設計模式的類型

根據設計模式的參考書 中所提到的,總共有 23 種設計模式。

這些模式可以分為三大類:創建型模式(Creational Patterns)、結構型模式(Structural Patterns)、行為型模式(Behavioral Patterns)。當然,我們還會討論另一類設計模式:J2EE 設計模式。

序號

模式 & 描述

包括

1

創建型模式

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

  • 工廠模式(Factory Pattern)

  • 抽象工廠模式(Abstract Factory Pattern)

  • 單例模式(Singleton Pattern)

  • 建造者模式(Builder Pattern)

  • 原型模式(Prototype Pattern)

2

結構型模式

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

  • 適配器模式(Adapter Pattern)

  • 橋接模式(Bridge Pattern)

  • 過濾器模式(Filter、Criteria Pattern)

  • 組合模式(Composite Pattern)

  • 裝飾器模式(Decorator Pattern)

  • 外觀模式(Facade Pattern)

  • 享元模式(Flyweight Pattern)

  • 代理模式(Proxy Pattern)

3

行為型模式

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

  • 責任鏈模式(Chain of Responsibility Pattern)

  • 命令模式(Command Pattern)

  • 解釋器模式(Interpreter Pattern)

  • 叠代器模式(Iterator Pattern)

  • 中介者模式(Mediator Pattern)

  • 備忘錄模式(Memento Pattern)

  • 觀察者模式(Observer Pattern)

  • 狀態模式(State Pattern)

  • 空對象模式(Null Object Pattern)

  • 策略模式(Strategy Pattern)

  • 模板模式(Template Pattern)

  • 訪問者模式(Visitor Pattern)

4

J2EE 模式

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

  • MVC 模式(MVC Pattern)

  • 業務代表模式(Business Delegate Pattern)

  • 組合實體模式(Composite Entity Pattern)

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

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

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

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

  • 傳輸對象模式(Transfer Object Pattern)

設計模式 總結