C++設(shè)計(jì)模式-第二篇
本章內(nèi)容:
1 工廠方法模式
2 抽象工廠模式
3 原型模式
4 構(gòu)建器模式
5 門面模式
6 代理模式
7 適配器模式
8 中介者模式
1 工廠方法模式(Factory Method模式)
** “對(duì)象創(chuàng)建”模式:**
通過“對(duì)象創(chuàng)建”模式繞開new缩筛,來避免對(duì)象創(chuàng)建(new)過程中所導(dǎo)致的緊耦合(依賴具體類)重慢,從而支持對(duì)象創(chuàng)建的穩(wěn)定埂伦。它是接口抽象之后的第一步工作糯崎。
典型模式:
1). Factory Method
2). Abstract Factory
3). Prototype
4). Builder動(dòng)機(jī)(Motivation)
在軟件系統(tǒng)中,經(jīng)常面臨著創(chuàng)建對(duì)象的工作狠鸳;由于需求變化傍妒,需要?jiǎng)?chuàng)建的對(duì)象的具體類型經(jīng)常變化。
如何應(yīng)對(duì)這種變化?如果繞過常規(guī)的對(duì)象創(chuàng)建方法(new)沥寥,提供一種“封裝機(jī)制”來避免客戶程序和這種“具體對(duì)象創(chuàng)建工作”的緊耦合碍舍?
模式定義
定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類邑雅。
Factory Method
使得一個(gè)類的實(shí)例化延遲(目的:解耦片橡,手段:虛函數(shù))到子類。-
結(jié)構(gòu)(Structure)
要點(diǎn)總結(jié)
Factory Method
模式用于隔離類對(duì)象的使用者和具體類型之間的耦合關(guān)系淮野。面對(duì)一個(gè)經(jīng)常變化具體類型捧书,緊耦合關(guān)系(new)會(huì)導(dǎo)致軟件的脆弱。Factory Method
模式通過面向?qū)ο蟮氖址ㄖ栊牵瑢⑺獎(jiǎng)?chuàng)建的具體對(duì)象工作延遲到子類经瓷,從而實(shí)現(xiàn)一種擴(kuò)展(而非更改)的策略,較好地解決了這種緊耦合關(guān)系洞难。Factory Method
模式解決了“單個(gè)對(duì)象”的需求變化舆吮。缺點(diǎn)在于要求創(chuàng)建方法/參數(shù)相同。
2 抽象工廠模式(Abstract Factory模式)
** “對(duì)象創(chuàng)建”模式:**
通過“對(duì)象創(chuàng)建”模式繞開new队贱,來避免對(duì)象創(chuàng)建(new)過程中所導(dǎo)致的緊耦合(依賴具體類)色冀,從而支持對(duì)象創(chuàng)建的穩(wěn)定。它是接口抽象之后的第一步工作露筒。
典型模式:
1). Factory Method
2). Abstract Factory
3). Prototype
4). Builder動(dòng)機(jī)(Motivation)
- 模式定義
-
結(jié)構(gòu)(Structure)
要點(diǎn)總結(jié)
3 原型模式(Prototype模式)
** “對(duì)象創(chuàng)建”模式:**
通過“對(duì)象創(chuàng)建”模式繞開new呐伞,來避免對(duì)象創(chuàng)建(new)過程中所導(dǎo)致的緊耦合(依賴具體類),從而支持對(duì)象創(chuàng)建的穩(wěn)定慎式。它是接口抽象之后的第一步工作伶氢。
典型模式:
1). Factory Method
2). Abstract Factory
3). Prototype
4). Builder動(dòng)機(jī)(Motivation)
- 模式定義
-
結(jié)構(gòu)(Structure)
- 要點(diǎn)總結(jié)
4 構(gòu)建器模式(Builder模式)
** “對(duì)象創(chuàng)建”模式:**
通過“對(duì)象創(chuàng)建”模式繞開new,來避免對(duì)象創(chuàng)建(new)過程中所導(dǎo)致的緊耦合(依賴具體類)瘪吏,從而支持對(duì)象創(chuàng)建的穩(wěn)定癣防。它是接口抽象之后的第一步工作。
典型模式:
1). Factory Method
2). Abstract Factory
3). Prototype
4). Builder動(dòng)機(jī)(Motivation)
- 模式定義
-
結(jié)構(gòu)(Structure)
- 要點(diǎn)總結(jié)
5 門面模式(Fa?ade模式)
** “接口隔離”模式:**
在組件構(gòu)建過程中掌眠,某些接口之間直接的依賴常常會(huì)帶來很多問題蕾盯、甚至根本無法實(shí)現(xiàn)。采用添加一層間接(穩(wěn)定)接口蓝丙,來隔離本來互相緊密關(guān)聯(lián)的接口是一種常見的解決方案级遭。
典型模式:
1). Fa?ade
2). Proxy
3). Adapter
4). Mediator動(dòng)機(jī)(Motivation)
模式定義
-
系統(tǒng)間耦合的復(fù)雜度
-
結(jié)構(gòu)(Structure)
要點(diǎn)總結(jié)
6 代理模式(Proxy模式)
** “接口隔離”模式:**
在組件構(gòu)建過程中,某些接口之間直接的依賴常常會(huì)帶來很多問題渺尘、甚至根本無法實(shí)現(xiàn)挫鸽。采用添加一層間接(穩(wěn)定)接口,來隔離本來互相緊密關(guān)聯(lián)的接口是一種常見的解決方案鸥跟。
典型模式:
1). Fa?ade
2). Proxy
3). Adapter
4). Mediator動(dòng)機(jī)(Motivation)
- 模式定義
-
結(jié)構(gòu)(Structure)
- 要點(diǎn)總結(jié)
7 適配器模式(Adapter模式)
** “接口隔離”模式:**
在組件構(gòu)建過程中丢郊,某些接口之間直接的依賴常常會(huì)帶來很多問題盔沫、甚至根本無法實(shí)現(xiàn)。采用添加一層間接(穩(wěn)定)接口枫匾,來隔離本來互相緊密關(guān)聯(lián)的接口是一種常見的解決方案架诞。
典型模式:
1). Fa?ade
2). Proxy
3). Adapter
4). Mediator動(dòng)機(jī)(Motivation)
- 模式定義
-
結(jié)構(gòu)(Structure)
8 中介者模式(Mediator模式)
** “接口隔離”模式:**
在組件構(gòu)建過程中,某些接口之間直接的依賴常常會(huì)帶來很多問題干茉、甚至根本無法實(shí)現(xiàn)谴忧。采用添加一層間接(穩(wěn)定)接口,來隔離本來互相緊密關(guān)聯(lián)的接口是一種常見的解決方案等脂。
典型模式:
1). Fa?ade
2). Proxy
3). Adapter
4). Mediator動(dòng)機(jī)(Motivation)
模式定義
-
結(jié)構(gòu)(Structure)
要點(diǎn)總結(jié)