設計模式目錄導航

1、面向對象設計六大基本原則

2、建立型模型(5種)

  關注對象的建立過程。幫助咱們建立對象。html

  1 單例模式   singleton

    保證一個類只有一個實例,而且提供一個訪問該實例的全局訪問點。算法

  2 工廠模式   factory

    (1)簡單工廠模式   simple factory

      用來生產同一等級結構中的任意產品(對於增長新的產品,須要修改已有地代碼)。網絡

    (2)工廠方法模式   factory method

      用來生產同一等級結構中的固定產品(支持增長任意產品)。ui

  3 抽象工廠模式   abstract factory

    用來生產不一樣產品族的所有產品(對於新增長的產品無能爲力,可是支持增長產品族)。spa

  4 建造者模式   builder

    分離了對象子組件的單獨結構(由Builder負責)和裝配(由Director負責),從而能夠構造出複雜的對象。prototype

  5 原型模式   prototype  

    當經過 new 產生一個對象須要很是繁瑣的數據準備或訪問權限時,則可使用原型模式。設計

3、結構型模型(7種)

  關注對象和類的組織。是從程序的結構上實現鬆耦合,從而能夠擴大總體的類結構,用來解決更大的問題。代理

  1 適配器模式   adapter

    使原來因爲接口不兼容不能一塊兒工做的類能夠一塊兒工做。server

  2 代理模式   proxy

    爲真實對象提供一個代理,從而控制對其真實對象獲得訪問。htm

  3 橋接模式   bridge

    處理多層繼承結構,處理多維度變化的場景,將各個維度設計成獨立的繼承結構,使各個維度能夠獨立的擴展在抽象層創建關聯。

  4 裝飾模式   decorator

    動態的給一個對象添加額外的功能,比繼承靈活。

  5 組合模式   composite

    將對象組合成樹狀結構以表示「部分和總體」層次結構,使得客戶能夠統一的調用葉子對象和容器對象。

  6 外觀模式   facade

    爲子系統提供統一的調用接口,使得子系統更加容易使用。

  7 享元模式   flyweight

    運用共享技術有效地實現管理大量細粒度對象,節省內存,提升效率。

4、行爲型模型(11種)

  關注系統中對象之間的相互交互,研究系統在運行時對象之間的相互通訊和協做,進一步明確對象的職責。

  1 責任鏈模式   chain of responsibility

    將可以處理同一類請求的對象連成一條鏈,所提交的請求沿着鏈傳遞,鏈上的對象逐個判斷是否有能力處理該請求。若是能則處理,不然傳遞給;鏈上的下一個對象。

  2 命令模式   command

    將一個請求封裝到一個對象,從而使得可用不一樣的請求對客戶進行參數化。

  3 解釋器模式   interpreter

    用於描述如何構成一個簡單的語言解釋器,主要用於使用面嚮對象語言開發的編譯器和解釋器設計。

  4 迭代器模式   iterator

    提供一種能夠遍歷聚合對象的方式。又稱爲遊標(cursor)模式。

  5 中介者模式   mediator

    若是一個系統中對象之間的聯繫呈現網狀結構,對象之間存在大量多對多的關係,致使關係及其複雜,這時能夠引入一箇中介者對象,使得各個對象只跟中介者對象打交道,從而將複雜的網絡結構化爲星型結構。

  6 備忘錄模式   memento

    保存某個對象內部狀態的拷貝,使得之後就能夠將該對象恢復到原先的狀態。

  7 觀察者模式   observer

    主要用於 1 :N 的通知。當一個對象(目標對象)的狀態變化時,它須要通知一系列對象(觀察者對象),令它們作出響應。

  8 狀態模式   state

    用於解決系統中複雜對象的狀態轉換以及不一樣狀態下行爲的封裝問題。

  9 策略模式   strategy

    策略模式對應於解決某一個問題的一個算法族,容許用戶從該算法族中任選一種算法解決一個問題,同時能夠方便的更換算法或者增長新的算法。而且由客戶端決定調用哪一個算法。

  10 模板方法模式   template method

    處理步驟父類中定義好,具體實現延遲到子類中定義。

  11 訪問者模式   visitor

    表示一個做用於某對象結構中的各元素的操做,它使咱們能夠在不改變元素的類的前提下定義做用於這些元素的新操做。

相關文章
相關標籤/搜索