《設(shè)計模式筆記》之02模式分類

《設(shè)計模式筆記》之02模式分類

模式可以分為三大類:創(chuàng)建型模式(Creational Patterns)、結(jié)構(gòu)型模式(Structural Patterns)、行為型模式(Behavioral Patterns)。

創(chuàng)建型模式


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

  • 工廠模式(Factory Pattern)

    定義一個用于創(chuàng)建產(chǎn)品的接口,由子類決定生產(chǎn)什么產(chǎn)品。

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

    提供一個創(chuàng)建產(chǎn)品族的接口,其每個子類可以生產(chǎn)一系列相關(guān)的產(chǎn)品。

  • 單例模式(Singleton Pattern)

    某個類只能生成一個實例,該類提供了一個全局訪問點供外部獲取該實例,其拓展是有限多例模式。

  • 建造者模式(Builder Pattern)

    將一個復雜對象分解成多個相對簡單的部分,然后根據(jù)不同需要分別創(chuàng)建它們,最后構(gòu)建成該復雜對象。

  • 原型模式(Prototype Pattern)

    將一個對象作為原型,通過對其進行復制而克隆出多個和原型類似的新實例。

結(jié)構(gòu)型模式


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

  • 適配器模式(Adapter Pattern)

    將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口,使得原本由于接口不兼容而不能一起工作的那些類能一起工作。

  • 橋接模式(Bridge Pattern)

    將抽象與實現(xiàn)分離,使它們可以獨立變化。它是用組合關(guān)系代替繼承關(guān)系來實現(xiàn)的,從而降低了抽象和實現(xiàn)這兩個可變維度的耦合度。

  • 組合模式(Composite Pattern)

    將對象組合成樹狀層次結(jié)構(gòu),使用戶對單個對象和組合對象具有一致的訪問性。

  • 裝飾器模式(Decorator Pattern)

    動態(tài)地給對象增加一些職責,即增加其額外的功能。

  • 外觀模式(Facade Pattern)

    為多個復雜的子系統(tǒng)提供一個一致的接口,使這些子系統(tǒng)更加容易被訪問。

  • 享元模式(Flyweight Pattern)

    運用共享技術(shù)來有效地支持大量細粒度對象的復用。

  • 代理模式(Proxy Pattern)

    為某對象提供一種代理以控制對該對象的訪問。即客戶端通過代理間接地訪問該對象,從而限制、增強或修改該對象的一些特性。

行為型模式

這些設(shè)計模式特別關(guān)注對象之間的通信。

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

    把請求從鏈中的一個對象傳到下一個對象,直到請求被響應(yīng)為止。通過這種方式去除對象之間的耦合。

  • 命令模式(Command Pattern)

    將一個請求封裝為一個對象,使發(fā)出請求的責任和執(zhí)行請求的責任分割開。

  • 迭代器模式(Iterator Pattern)

    提供一種方法來順序訪問聚合對象中的一系列數(shù)據(jù),而不暴露聚合對象的內(nèi)部表示。

  • 中介者模式(Mediator Pattern)

    定義一個中介對象來簡化原有對象之間的交互關(guān)系,降低系統(tǒng)中對象間的耦合度,使原有對象之間不必相互了解。

  • 備忘錄模式(Memento Pattern)

    在不破壞封裝性的前提下,獲取并保存一個對象的內(nèi)部狀態(tài),以便以后恢復它。

  • 觀察者模式(Observer Pattern)

    多個對象間存在一對多關(guān)系,當一個對象發(fā)生改變時,把這種改變通知給其他多個對象,從而影響其他對象的行為。

  • 狀態(tài)模式(State Pattern)

    允許一個對象在其內(nèi)部狀態(tài)發(fā)生改變時改變其行為能力。

  • 策略模式(Strategy Pattern)

    定義了一系列算法,并將每個算法封裝起來,使它們可以相互替換,且算法的改變不會影響使用算法的客戶。

  • 訪問者模式(Visitor Pattern)

    在不改變集合元素的前提下,為一個集合中的每個元素提供多種訪問方式,即每個元素有多個訪問者對象訪問。

  • 模板方法模式(Template Method)

    定義一個操作中的算法骨架,將算法的一些步驟延遲到子類中,使得子類在可以不改變該算法結(jié)構(gòu)的情況下重定義該算法的某些特定步驟。

  • 解釋器模式(Interpreter)

    提供如何定義語言的文法,以及對語言句子的解釋方法,即解釋器。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 創(chuàng)建型模式 工廠模式 工廠模式(Factory Pattern)是 Java 中最常用的設(shè)計模式之一。這種類型的設(shè)...
    隔墻送來秋千影閱讀 2,824評論 0 11
  • 創(chuàng)建型模式 工廠模式 工廠模式(Factory Pattern)是 Java 中最常用的設(shè)計模式之一。這種類型的設(shè)...
    liuyang7519閱讀 398評論 0 2
  • 下面總結(jié)設(shè)計模式中的行為型模式: 1.責任鏈模式 顧名思義,責任鏈模式(Chain of Responsibili...
    Steven1997閱讀 3,712評論 0 1
  • 寫在前面 本文摘自:https://laravel-china.org/docs/php-design-patte...
    DragonRat閱讀 501評論 0 0
  • 設(shè)計模式(Design pattern)是一套被反復使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗的總結(jié)。使用設(shè)...
    于先笙閱讀 594評論 1 3

友情鏈接更多精彩內(nèi)容