日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

我所理解的设计模式(C++实现)—— “一句话总结”和索引

發(fā)布時(shí)間:2024/4/11 c/c++ 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我所理解的设计模式(C++实现)—— “一句话总结”和索引 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我所理解的設(shè)計(jì)模式系列已經(jīng)全部完成,在寫該系列的過程中收獲很多。俗話說得好,好記性不如爛筆頭,寫出來不單單可以增加自己對(duì)知識(shí)的理解,也可以很好的分享給大家,大家共同學(xué)習(xí)。這里是最后一篇,來給所有的設(shè)計(jì)模式來個(gè)一句話總結(jié),在讓我們“過電影”般在過一遍。


按照目的來分,設(shè)計(jì)模式可以分為創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式。

創(chuàng)建型模式用來處理對(duì)象的創(chuàng)建過程;結(jié)構(gòu)型模式用來處理類或者對(duì)象的組合;行為型模式用來對(duì)類或?qū)ο笤鯓咏换ズ驮鯓臃峙渎氊?zé)進(jìn)行描述。


創(chuàng)建型模式用來處理對(duì)象的創(chuàng)建過程,主要包含以下5種設(shè)計(jì)模式:?

1工廠方法模式Factory?Method?Pattern)的用意是定義一個(gè)創(chuàng)建產(chǎn)品對(duì)象的工廠接口,將實(shí)際創(chuàng)建工作推遲到子類中。

2抽象工廠模式Abstract?Factory?Pattern的意圖是提供一個(gè)創(chuàng)建一系列相關(guān)或者相互依賴的接口,而無需指定它們具體的類。

3建造者模式Builder?Pattern)的意圖是將一個(gè)復(fù)雜的構(gòu)建與其表示相分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。

4原型模式Prototype?Pattern)是用原型實(shí)例指定創(chuàng)建對(duì)象的種類,并且通過拷貝這些原型創(chuàng)建新的對(duì)象。

5單例模式Singleton?Pattern是保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問它的全局訪問點(diǎn)。

?

結(jié)構(gòu)型模式用來處理類或者對(duì)象的組合,主要包含以下7種設(shè)計(jì)模式:

6適配器模式Adapter?Pattern是將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。?

7橋接模式Bridge?Pattern是將抽象部分與實(shí)際部分分離,使它們都可以獨(dú)立的變化。?

8組合模式Composite?Pattern是將對(duì)象組合成樹形結(jié)構(gòu)以表示“部分--整體”的層次結(jié)構(gòu)。使得用戶對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性。

9裝飾者模式Decorator?Pattern動(dòng)態(tài)的給一個(gè)對(duì)象添加一些額外的職責(zé)。就增加功能來說,此模式比生成子類更為靈活。?

10外觀模式Facade?Pattern是為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,此模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。

11享元模式Flyweight?Pattern是以共享的方式高效的支持大量的細(xì)粒度的對(duì)象。

12代理模式Proxy?Pattern就是為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問。?


行為型模式用來對(duì)類或?qū)ο笤鯓咏换ズ驮鯓臃峙渎氊?zé)進(jìn)行描述,主要包含以下11種設(shè)計(jì)模式:

13責(zé)任鏈模式Chain?of?Responsibility?Pattern,在該模式里,很多對(duì)象由每一個(gè)對(duì)象對(duì)其下家的引用而連接起來形成一條鏈。請(qǐng)求在這個(gè)鏈上傳遞,直到鏈上的某一個(gè)對(duì)象決定處理此請(qǐng)求,這使得系統(tǒng)可以在不影響客戶端的情況下動(dòng)態(tài)地重新組織鏈和分配責(zé)任。?

14命令模式Command?Pattern是將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而使你可用不同的請(qǐng)求對(duì)客戶端進(jìn)行參數(shù)化;對(duì)請(qǐng)求排隊(duì)或記錄請(qǐng)求日志,以及支持可撤銷的操作。?

15解釋器模式Interpreter?Pattern就是描述了如何為簡(jiǎn)單的語言定義一個(gè)語法,如何在該語言中表示一個(gè)句子,以及如何解釋這些句子。

16迭代器模式Iterator?Pattern是提供了一種方法順序來訪問一個(gè)聚合對(duì)象中的各個(gè)元素,而又不需要暴露該對(duì)象的內(nèi)部表示。?

17中介者模式Mediator?Pattern就是定義一個(gè)中介對(duì)象來封裝系列對(duì)象之間的交互。終結(jié)者使各個(gè)對(duì)象不需要顯示的相互調(diào)用?,從而使其耦合性松散,而且可以獨(dú)立的改變他們之間的交互。

18備忘錄模式Memento?Pattern是在不破壞封裝的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài)。

19觀察者模式Observer?Pattern定義對(duì)象間的一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都得到通知并被自動(dòng)更新。?

20狀態(tài)模式State?Pattern就是允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)改變時(shí)改變它的行為,使對(duì)象看起來似乎修改了它的類。

21策略模式Strategy?Pattern就是準(zhǔn)備一組算法,并將每一個(gè)算法封裝起來,使得它們可以互換。

22模板方法模式Template?Method?Pattern使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。?

23訪問者模式Visitor?Pattern就是表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的操作,它使你可以在不改變各元素的類的前提下定義作用于這些元素的新操作。?

版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。

總結(jié)

以上是生活随笔為你收集整理的我所理解的设计模式(C++实现)—— “一句话总结”和索引的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。