天天看點

中級軟體設計師考試(軟考中級)設計模式分類及其典型特點一、建立型模式二、結構型模式三、行為型模式

【原文連結】中級軟體設計師考試(軟考中級)設計模式分類及典型特點

文章目錄

  • 一、建立型模式
    • 1.1 工廠方法模式(factory method)
    • 1.2 抽象工廠模式(abstract factory)
    • 1.3 原型模式(prototype)
    • 1.4 單例模式(singleton)
    • 1.5 建構器模式(builder)
  • 二、結構型模式
    • 2.1 擴充卡模式(adapter)
    • 2.2 橋接模式(bridge)
    • 2.3 組合模式(composite)
    • 2.4 裝飾模式(decorator)
    • 2.5 外觀模式(facade)
    • 2.6 享元模式(flyweight)
    • 2.7 代理模式(proxy)
  • 三、行為型模式
    • 3.1 職責鍊模式(chain of responsibility)
    • 3.2 指令模式(command)
    • 3.3 解釋器模式(interpreter)
    • 3.4 疊代器模式(iterator)
    • 3.5 中介者模式(mediator)
    • 3.6 備忘錄模式(memento)
    • 3.7 觀察者模式(observer)
    • 3.8 狀态模式(state)
    • 3.9 政策模式(strategy)
    • 3.10 模闆方法模式(template method)
    • 3.11 通路者模式(visitor)

一、建立型模式

1.1 工廠方法模式(factory method)

  • 定義

    定義一個建立對象的接口,但由子類決定需要執行個體化哪一個類,使得子類執行個體化過程推遲

  • 典型特點

    子類決定執行個體化

1.2 抽象工廠模式(abstract factory)

  • 定義

    提供一個接口,可以建立一系列相關或互相依賴的對象,而無需指定它們具體的類

  • 典型特點

    抽象接口

1.3 原型模式(prototype)

  • 定義

    用原型執行個體指定建立對象的類型,并且通過拷貝這個原型來建立新的對象

  • 典型特點

    原型執行個體、拷貝

1.4 單例模式(singleton)

  • 定義

    保證一個雷隻能有一個執行個體,并且提供一個通路它的全局的通路點

  • 典型特點

    唯一執行個體

1.5 建構器模式(builder)

  • 定義

    将一個複雜類的表示與其構造向分離,使得相同的建構過程能夠得出不同的表示

  • 典型特點

    類和構造分離

二、結構型模式

2.1 擴充卡模式(adapter)

  • 定義

    将一個類的接口轉換成使用者希望得到的另外一種接口,它使原本不相容的接口得以協同工作

  • 典型特點

    轉換、相容接口

2.2 橋接模式(bridge)

  • 定義

    将類的抽象部分和它的實作部分分離開來,使它們可以獨立的變化

  • 典型特點

    抽象與實作分離

2.3 組合模式(composite)

  • 定義

    将對象組合成樹形結構以表示“整體-部分”的層次結構,使得使用者對單個對象群組合對象的使用具有一緻性

  • 典型特點

    整體-部分、樹形結構

2.4 裝飾模式(decorator)

  • 定義

    動态的給一個對象添加一些額外的職責,它提供了用于子類擴充功能的靈活的替代,比派生一個子類更加靈活

  • 典型特點

    附加指責

2.5 外觀模式(facade)

  • 定義

    定義一個高層接口,為子系統中的一組接口提供一個一緻的外觀,進而簡化了該系統的使用

  • 典型特點

    對外統一接口

2.6 享元模式(flyweight)

  • 定義

    提供支援大量細粒度對象共享的有效方法

  • 典型特點

    細粒度、共享

2.7 代理模式(proxy)

  • 定義

    為其他對象提供一種代理以控制這個獨享的通路

  • 典型特點

    代理控制

三、行為型模式

3.1 職責鍊模式(chain of responsibility)

  • 定義

    通過給多個對象處理請求的機會,減少請求的發送者與接收者之間的耦合,将接受對象連結起來,在鍊中傳遞請求,知道有一個對象處理這個請求

  • 典型特點

    傳遞請求、職責、連結

3.2 指令模式(command)

  • 定義

    将一個請求封裝為一個對象,進而可以不同的請求對客戶進行參數化,将請求排隊或記錄請求日志,支援可撤銷的操作

  • 典型特點

    日志記錄、可撤銷

3.3 解釋器模式(interpreter)

  • 定義

    給定一種語言,定義它的文法表示,并定義一個解釋器,該解釋器用來根據文法表示解釋語言中的句子

  • 典型特點

    解釋器、虛拟機

3.4 疊代器模式(iterator)

  • 定義

    提供一種方法來順序通路一個聚合對象中的各個元素而不需要暴露該對象的内部表示

  • 典型特點

    順序通路,不爆漏内部

3.5 中介者模式(mediator)

  • 定義

    用一個中介對象來封裝一系列的對象互動,他使各對象不需要顯示地互相調用,進而達到低耦合,還可以獨立的改變對象間的互動

  • 典型特點

    不直接引用

3.6 備忘錄模式(memento)

  • 定義

    在不破壞封裝的前提下,捕獲一個對象的内部狀态,并在該對象之外儲存這個狀态,進而可以在以後将該對象恢複到原先儲存的狀态

  • 典型特點

    儲存、恢複

3.7 觀察者模式(observer)

  • 定義

    定義對象間的一種一對多的依賴關系,當一個對象的狀态發生改變時,所有依賴于它的對象都得到通知并自行自動更新

  • 典型特點

    通知、自動更新

3.8 狀态模式(state)

  • 定義

    允許對象在其内部狀态改變時改變它的行為

  • 典型特點

    狀态變成類

3.9 政策模式(strategy)

  • 定義

    定義系列算法,把他們一個個封裝起來,并且使他們之間看互相替換,進而讓算法可以獨立于使用它的使用者而變化

  • 典型特點

    算法替換

3.10 模闆方法模式(template method)

  • 定義

    定義一個操作中的算法骨架,而将一些步驟遠馳到子類中,使得子類可以不改變一個算法的結構即可重新定義算法的某些特定步驟

3.11 通路者模式(visitor)

  • 定義

    表示一個作用于某對象結構中的各元素的操作,使得在不修改各元素的類的前提下定義作用于這些元素的新操作

  • 典型特點

    資料與操作分離

繼續閱讀