1. 程式人生 > >大話設計模式總結3---二十三種模式

大話設計模式總結3---二十三種模式

建立型模式(CreationalPatters):一共有五種,常用的有三種。

工廠方法(FactoryMethod):定義一個用於建立物件的介面,讓子類決定例項化哪一個類。工廠方法是一個列的例項化延遲到其子類。工廠方法用一個virtual method完成建立過程。

抽象工廠(AbstractFactory):提供一個建立一些類相關或相互依賴物件的介面,而無需指定它們具體的類。

單例(Singleton):保證一個類僅有一個例項,並提供一個訪問它的全域性訪問點。

生成器(Builder):通過一個構造演算法和builder介面把構造過程和客戶隔離開。

原型(Prototype):用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。

結構型模式(Structuralpatterns):一共有七種,常用的有三種。

裝飾者(Decorator):動態的給一個物件新增一些額外的職責。就擴充套件功能而言,他比生成子類方式更為靈活

介面卡(Adapter):將一個類的介面轉換成客戶希望的另外一個介面。

外觀(Facade):為子系統中的一組介面提供一個一致的介面,Facade模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。

組合(Composite):將物件組合成樹形結構以表示“整體—部分”的層次結構。使得客戶對單個物件和符合物件的使用具有一致性。

代理(Proxy):為其他物件提供一個代理以控制對這個物件的訪問。

橋接(Build):將抽象部分與他的實現部分分離,使他們都可以獨立地變化。

享元(Flyweight):運用共享技術有效地支援大量細粒度的物件。

行為模式(Behavioral  Patterns):一共十一種模式,常用的有三種。

策略(Strategy):定義一些類演算法,把他們一個個封裝起來,並且使他們可相互替換。

觀察者(Observer):定義物件間的一種一對多的依賴關係,以便當一個物件的狀態發生改變時,所有依賴於它的物件都得到通知並自動重新整理。

 命令(Command):講一個請求封裝為一個物件,從而是你可用不同的請求對客戶進行引數化;對請求排隊或記錄請求日誌,以及支援可撤銷的操作。

模板方法(TemplateMethod):在基類中定義演算法的骨架,把某些細節延遲到子類中。

迭代器(Iterator):提供一種方法順序訪問一個聚合物件中各個元素,而又不需暴露該物件的內部表示。

狀態(State):允許一個物件在其內部狀態改變時改變它的行為。物件看起來似乎修改了它所屬的類。

職責鏈(Chain of Responsibility):請求的處理過程,沿著鏈傳遞,decouple(解耦)傳送方和接收方。

直譯器(Interpreter)通常當一個語言需要解釋執行,並且你可以將該語言中的句子表示成為一個抽象的語法樹時,可以使用直譯器模式。

中介者(Mediator):用一箇中介物件來封裝一系列的物件互動,中介者使各物件不需要顯示的相互引用,從而降低耦合;而且可以獨立地改變它們之間的互動。

備忘錄(Memo):在不破壞封裝性的前提下,捕獲一個物件的內部狀態,並在該物件之外儲存這個狀態。

訪問者(VIsitor):表示一個作用於某物件結構中的元素的操作。它使你可以在不改變各元素的類的前提下定義作用與這些元素的新操作。

相關推薦

大話設計模式總結3---十三模式

建立型模式(CreationalPatters):一共有五種,常用的有三種。 工廠方法(FactoryMethod):定義一個用於建立物件的介面,讓子類決定例項化哪一個類。工廠方法是一個列的例項化延遲到其子類。工廠方法用一個virtual method完成建立過

java基礎總結(三十三)--十三設計模式

來自:https://www.cnblogs.com/geek6/p/3951677.html     一、設計模式的分類 總體來說設計模式分為三大類: 建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。 結構型模式,共七種:

十三設計模式 羅列

dap flyweight osi 設計 eth ora 備忘錄 mem esp 1、工廠方法模式(Factory Method) 2、抽象工廠模式(Abstract Factory) 3、單例模式(Singleton) 4、建造者模式(Builder) 5、原型模式(Pr

[系列匯總] - 十三設計模式(持續更新中…)

prot 不同 hellip rac pro 抽象 trac pattern .html 摘要 最近在讀GOF的Design Patterns: Elements of Reusable Object-Oriented Software(設計模式:可復用面向對象

(轉)十三設計模式及其python實現

本文原始碼寄方於github:https://github.com/w392807287/Design_pattern_of_python 參考文獻: 《大話設計模式》——吳強 《Python設計模式》——pythontip.com 《23種設計模式》——http://www.cnblogs.com/

十三設計模式[13] - 職責鏈模式(Chain Of Responsibility)

前言        職責鏈模式,屬於物件行為型模式。你可以想象成有一排人等著幫你處理問題,你只需要將你的問題告訴第一個人然後等待結果即可。如果第一個人處理不了這個問題,他會將這個問題告訴第二個人,以此類推。但並不意味著你的問題一定會被解決。 &nbs

Java十三設計模式

java 23種設計模式 深入理解 以下是學習過程中查詢的資料,別人總結的資料,比較容易理解(站在各位巨人的肩膀上,望博主勿究) 建立型 抽象工廠 http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html

十三設計模式[14] - 命令模式(Command Pattern)

前言        命令模式,物件行為型模式的一種。它幫助我們將功能的呼叫者與實現者之間解耦(甚至完全解耦)。呼叫者與實現者之間並不是直接引用關係,呼叫者只需要知道如何傳送當前功能的請求即可,而不用關心該請求由誰在何時完成。   

十三設計模式[15] - 解釋器模式(Interpreter)

pub move 以及 exce aps ret 行為型 根節點 key 前言 解釋器模式,類行為型模式。一種用來解釋特定文法(語言的語法和表達式)規則的方式。這種行為模式使用了類似組合的結構來構建一個抽象語法樹(Abstract Syntax Tree,AST

十三設計模式[16] - 迭代器模式(Iterator Pattern)

前言        迭代器模式,屬於物件行為型模式。它的目的是將一個集合物件的迭代與其本身分離,使這個聚合物件更單純,並且在遍歷的同時不需要暴露該聚合物件的內部結構。        在《設計

十三設計模式[1] - 工廠方法(Factory Method)

前言        工廠方法,又名工廠模式,屬於建立型模式。        其目的是通過定義一個用於建立物件的介面,讓子類決定例項化哪一個類,使一個類的例項化延遲到子類。  

十三設計模式[12] - 代理模式(Proxy Pattern)

前言        代理模式,屬於物件結構型模式。在《設計模式 - 可複用的面向物件軟體》一書中將之描述為“ 為其它物件提供一種代理以控制對這個物件的訪問 ”。        在代理模式

十三設計模式[11] - 享元模式(Flyweight Pattern)

摘要        享元模式,物件結構型模式的一種。在《設計模式 - 可複用的面向物件軟體》一書中將之描述為“ 運用共享技術有效地支援大量細粒度的物件 ”。        在享元模式中,通過

十三設計模式[10] - 外觀模式(Facade Pattern)

前言        外觀模式,又稱門面模式,物件結構型模式。在《設計模式 - 可複用的面向物件軟體》一書中將之描述為“ 為系統中的一組介面提供一個一致的介面,Facade模式定義了一個高層介面,這個介面使得這一子系統更加容易使用 ”。 模式 需要角

十三設計模式[9] - 裝飾模式(Decorator Pattern)

前言        裝飾模式,屬於物件結構型模式。在《設計模式 - 可複用的面向物件軟體》一書中將之描述為“ 動態地給一個物件新增一些額外的職責。就增加功能來說,Decorator模式相比生成子類更為靈活”。    &n

十三設計模式[15] - 直譯器模式(Interpreter Pattern)

前言        直譯器模式,類行為型模式。一種用來解釋特定文法(語言的語法和表示式)規則的方式。這種行為模式使用了類似組合的結構來構建一個抽象語法樹(Abstract Syntax Tree,AST),用來描述該直譯器所解釋的語法。如果你想要了

十三設計模式[17] - 中介者模式(Mediator Pattern)

前言        在開發軟體的過程中,我們通常會將類設計的比較單純,使其複用性更高。但類間的相互引用又使得類本身在沒有其他類的支援下不能正常工作,導致其複用性降低。所以為了提高類的複用性我們需要儘可能的減少對其它類的引用,也就是說我們常說的解耦。中

23設計模式之(十三)迭代器模式(python_c++實現) .md

23種設計模式之(二十三)迭代器模式(Iterator) 本文主要介紹23種設計模式之迭代器模式,附詳細python/c++示例程式碼。 概念 應用場景 注意事項 程式碼示例 總結 程式碼連結 迭代器模式(Iterator) 概念 迭代模式,是行為模式之一

十三設計模式(三)

12.外觀模式 外觀模式(Facade),隱藏了系統的複雜性,並向客戶端提供了一個可以訪問系統的介面。這種型別的設計模式屬於結構性模式。為子系統中的一組介面提供了一個統一的訪問介面,這個介面使得子系統更容易被訪問或者使用。 簡單來說,該模式就是把一些複雜的流程封裝成一個介面供給外部使用者更簡單的使用。

十三設計模式_概述

概述及詳解:https://blog.csdn.net/qq_25827845/article/details/52932234     一、Singleton,單例模式:保證一個類只有一個例項,並提供一個訪問它的全域性訪問點 二、Abstract Factory,抽