设计模式(C++实现)--一句话总结
原文鏈接:http://blog.csdn.net/LCL_data/article/details/12117349
按照目的來分,設(shè)計(jì)模式可以分為創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式。
按照目的來分,可分為創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式。
創(chuàng)建型模式:工廠模式(工廠方法、抽象工廠、建造者、原型、單例)
結(jié)構(gòu)型模式:連接模式(適配器、橋接、組合、修飾者、外觀、享元、代理)
行為型模式:責(zé)任鏈、命令、解釋器、迭代器、中介者、備忘錄、觀察者、狀態(tài)、策略、模板方法、訪問者模式。
創(chuàng)建型模式用來處理對象的創(chuàng)建過程;結(jié)構(gòu)型模式用來處理類或者對象的組合;行為型模式用來對類或?qū)ο笤鯓咏换ズ驮鯓臃峙渎氊?zé)進(jìn)行描述。
創(chuàng)建型模式用來處理對象的創(chuàng)建過程,主要包含以下5種設(shè)計(jì)模式:?
1,工廠方法模式(Factory?Method?Pattern)的用意是定義一個創(chuàng)建產(chǎn)品對象的工廠接口,將實(shí)際創(chuàng)建工作推遲到子類中。
2,抽象工廠模式(Abstract?Factory?Pattern)的意圖是提供一個創(chuàng)建一系列相關(guān)或者相互依賴的接口,而無需指定它們具體的類。
3,建造者模式(Builder?Pattern)的意圖是將一個復(fù)雜的構(gòu)建與其表示相分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。
4,原型模式(Prototype?Pattern)是用原型實(shí)例指定創(chuàng)建對象的種類,并且通過拷貝這些原型創(chuàng)建新的對象。
5,單例模式(Singleton?Pattern)是保證一個類僅有一個實(shí)例,并提供一個訪問它的全局訪問點(diǎn)。
?
結(jié)構(gòu)型模式用來處理類或者對象的組合,主要包含以下7種設(shè)計(jì)模式:
6,適配器模式(Adapter?Pattern)是將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。?
7,橋接模式(Bridge?Pattern)是將抽象部分與實(shí)際部分分離,使它們都可以獨(dú)立的變化。?
8,組合模式(Composite?Pattern)是將對象組合成樹形結(jié)構(gòu)以表示“部分--整體”的層次結(jié)構(gòu)。使得用戶對單個對象和組合對象的使用具有一致性。
9,裝飾者模式(Decorator?Pattern)動態(tài)的給一個對象添加一些額外的職責(zé)。就增加功能來說,此模式比生成子類更為靈活。?
10,外觀模式(Facade?Pattern)是為子系統(tǒng)中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。
11,享元模式(Flyweight?Pattern)是以共享的方式高效的支持大量的細(xì)粒度的對象。
12,代理模式(Proxy?Pattern)就是為其他對象提供一種代理以控制對這個對象的訪問。?
行為型模式用來對類或?qū)ο笤鯓咏换ズ驮鯓臃峙渎氊?zé)進(jìn)行描述,主要包含以下11種設(shè)計(jì)模式:
13,責(zé)任鏈模式(Chain?of?Responsibility?Pattern),在該模式里,很多對象由每一個對象對其下家的引用而連接起來形成一條鏈。請求在這個鏈上傳遞,直到鏈上的某一個對象決定處理此請求,這使得系統(tǒng)可以在不影響客戶端的情況下動態(tài)地重新組織鏈和分配責(zé)任。?
14,命令模式(Command?Pattern)是將一個請求封裝為一個對象,從而使你可用不同的請求對客戶端進(jìn)行參數(shù)化;對請求排隊(duì)或記錄請求日志,以及支持可撤銷的操作。?
15,解釋器模式(Interpreter?Pattern)就是描述了如何為簡單的語言定義一個語法,如何在該語言中表示一個句子,以及如何解釋這些句子。
16,迭代器模式(Iterator?Pattern)是提供了一種方法順序來訪問一個聚合對象中的各個元素,而又不需要暴露該對象的內(nèi)部表示。?
17,中介者模式(Mediator?Pattern)就是定義一個中介對象來封裝系列對象之間的交互。終結(jié)者使各個對象不需要顯示的相互調(diào)用?,從而使其耦合性松散,而且可以獨(dú)立的改變他們之間的交互。
18,備忘錄模式(Memento?Pattern)是在不破壞封裝的前提下,捕獲一個對象的內(nèi)部狀態(tài),并在該對象之外保存這個狀態(tài)。
19,觀察者模式(Observer?Pattern)定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被自動更新。?
20,狀態(tài)模式(State?Pattern)就是允許一個對象在其內(nèi)部狀態(tài)改變時改變它的行為,使對象看起來似乎修改了它的類。
21,策略模式(Strategy?Pattern)就是準(zhǔn)備一組算法,并將每一個算法封裝起來,使得它們可以互換。
22,模板方法模式(Template?Method?Pattern)使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。?
23,訪問者模式(Visitor?Pattern)就是表示一個作用于某對象結(jié)構(gòu)中的各元素的操作,它使你可以在不改變各元素的類的前提下定義作用于這些元素的新操作。
總結(jié)
以上是生活随笔為你收集整理的设计模式(C++实现)--一句话总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自研 5G 基带遇阻,分析师称苹果不再计
- 下一篇: 路特斯汽车宣布因亏损严重裁员 200 人