中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于c++設計模式的總結

發布時間:2020-06-21 14:56:15 來源:網絡 閱讀:3033 作者:GaoNeil 欄目:編程語言

關于c++設計模式的總結

關于c++設計模式的總結
抽象工廠,決定產品系列的產品的組合,特點是創建同一款式的產品系列。缺點是增加產品組件,需要修改抽象工廠接口,影響抽象工廠子類。

關于c++設計模式的總結
builder,決定產品的各個部分的build的過程。替換相應的builder子類,就可以修改產品相應的各個part部件的實現;替換相應的Director子類,就可以修改builder組件的調用順序(即控制創建過程)。

關于c++設計模式的總結
工廠方法,產品子類和creator子類一 一對應。不直接調用FactoryMethod操作,定義了何時調用FactoryMethod。擴展相關子類可以修改此調用時間

關于c++設計模式的總結
Prototype,產品自身就是自己的creator

關于c++設計模式的總結
Singleton,產生全局的單一實例

1)以上是創建型:創建型設計模式核心是通過替換直接調用new創建具體對象這種方式,從而去client代碼和產品對象之間的耦合。client都是通過接口引用工廠,通過接口引用產品,所以替換更方便。

關于c++設計模式的總結
adapter,描述了client如何做到通過target接口,來使用Adaptee的操作函數。

關于c++設計模式的總結
bridge,“抽象接口定義”和“具體實現部分”分離。分離后,可以各自發展。

關于c++設計模式的總結
composite,從共同接口派生,使對單個對象和組合對象的使用具有一致性,并且支持遞歸組合。

關于c++設計模式的總結
關于c++設計模式的總結
Decorator,共同的父類,接口相同,可以透明的、遞歸的增加額外的職責。與composite區別是只有一個組件。與strategy區別是Decorator修飾component的外觀,strategy提取分離component的內部策略實現。

關于c++設計模式的總結
fa?ade,分層的概念中,層與層之間提供統一、集中的接口。
使不同層的對象不會出現網狀交織。這樣各層可以獨立發展。fa?ade對象承擔上層請求轉發給下層對應對象。

關于c++設計模式的總結
關于c++設計模式的總結
flyweight,分離對象的內部、外部狀態,使得大量細粒度對象可以共享,節省存儲空間

關于c++設計模式的總結
關于c++設計模式的總結
proxy,proxy是Realsubject接口的子集或者相同接口,從而代替Realsubject。proxy來控制Realsubject,而不是client直接控制和訪問Realsubject。這樣proxy可以對Realsubject進行各種額外的控制。

2)以上是結構性模式。

關于c++設計模式的總結
chain of responsibility,每個在鏈上的對象都有一致的處理請求和訪問鏈上后繼者的接口。鏈式傳遞請求,使得請求的發送者和接收者解耦。
直到某個處理

關于c++設計模式的總結
command,把請求封裝為一個command對象,雖然抽象的接口一致,但是可以派生各種command子類。command對象中包含了對接收者的引用、和調用接收者的一系列操作,通過動態創建command子類對象以及創建時傳入不同的接收者引用,可以達到動態配置(參數化)請求的目的。進而實現上下文相關的菜單。Command模式將調用操作的對象與知道如何實現該操作的對象解耦。增加新的Command變得很容易。

關于c++設計模式的總結
interpreter,解釋器和文法表示分開。定義一種文法,定義一個解釋器用抽象語法樹輔助解釋文法。同樣的接口派生而來,以便遞歸組合,實現抽象的語法樹。

關于c++設計模式的總結
iterator,將對聚合對象的“訪問和遍歷”從聚合對象中分離出來,并放入到一個iterator對象中。對client隱藏了composite的內部組織。

關于c++設計模式的總結
關于c++設計模式的總結
Mediator,控制和協調一組對象間的交互,對象只跟中介相連,對象間不直接相連,從而減少連接數。方便對象獨立發展。

關于c++設計模式的總結
Memento,向originator請求一個保存了內部狀態的Memento,后面需要恢復時,傳回此Memento給Originator,從而Originator恢復回之前狀態,并且不保留Originator的內部細節

關于c++設計模式的總結
observer,subject狀態改變時,通知各個observer。兩者獨立發展,通過抽象接口調用,減少兩者耦合。

關于c++設計模式的總結
state,把各個行為封裝在接口一致的各個狀態對象中,所以改變狀態時,行為得到改變。并且把請求委托給他的狀態對象來處理。state模式將與“特定狀態”相關的行為局部化,并且將不同狀態的行為分割開來。

關于c++設計模式的總結
strategy,物理結構和算法分離,算法封裝在一個獨立對象中。

關于c++設計模式的總結
template method,定義算法骨架,但一些具體實現由子類定義。把公共的操作過程,做成模板

關于c++設計模式的總結
visitor,對象中包含多個不同接口類型的子對象。訪問操作封裝為獨立對象。結構對象和操作對象分離

3)以上是行為型模式。

對設計模式有興趣的話,更詳細的總結,可看我的ppt。

或者請參考《設計模式:可復用面向對象軟件的基礎》一書
英文版《Design Patterns: Elements of Reusable Object-Oriented Software》

另外我的相關培訓視頻請看:
歡迎觀看我發布的各個課程: https://edu.51cto.com/lecturer/8896847.html

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南平市| 张家川| 南丹县| 石泉县| 福建省| 靖西县| 通海县| 罗定市| 美姑县| 横峰县| 乌海市| 繁昌县| 桑日县| 平和县| 吕梁市| 奉节县| 通化市| 牟定县| 沙湾县| 淮阳县| 峨山| 深水埗区| 翁源县| 平利县| 凤山市| 绍兴市| 诏安县| 鲁山县| 平舆县| 四会市| 万盛区| 德州市| 新龙县| 瑞金市| 公主岭市| 定州市| 博乐市| 铜梁县| 潜山县| 乌苏市| 莱阳市|