外觀模式C++

外觀模式驯鳖,為子系統(tǒng)中的一組接口提供一個一致的界面迈着,此模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用怖辆。

外觀模式結構圖

image

外觀模式基本代碼

#include <iostream>
using namespace std;

class SubSystemOne {
public:
    void MethodOne() { cout << "SubSystemOne" << endl; }
};

class SubSystemTwo {
public:
    void MethodTwo() { cout << "SubSystemTwo" << endl; }
};

class SubSystemThree {
public:
    void MethodThree() { cout << "SubSystemThree" << endl; }
};

class SubSystemFour {
public:
    void MethodFour() { cout << "SubSystemFour" << endl; }
};

class Facade {
private:
    SubSystemOne s1;
    SubSystemTwo s2;
    SubSystemThree s3;
    SubSystemFour s4;
public:
    void MethodA() { // 方法組合
        s1.MethodOne();
        s3.MethodThree();
    }
    void MethodB() { // 方法組合
        s2.MethodTwo();
        s3.MethodThree();
        s4.MethodFour();
    }
};

int main() {
    Facade f;
    f.MethodA(); // SubSystemOne
                 // SubSystemThree
    cout << endl;
    f.MethodB(); // SubSystemTwo
                 // SubSystemThree
                 // SubSystemFour
    return 0;
}

使用場景

分三個階段:

  1. 在設計初期階段是复,應該要有意識的將不同的兩個層分離,在層與層之間建立外觀Facade疗隶,這樣可以為復雜的子系統(tǒng)提供一個簡單的接口佑笋,使得耦合大大降低;
  2. 在開發(fā)階段斑鼻,子系統(tǒng)往往因為不斷的重構演化而變得越來越復雜蒋纬,增加外觀Facade可以提供一個簡單的接口,減少它們之間的依賴坚弱;
  3. 在維護一個遺留的大型系統(tǒng)是蜀备,可能這個系統(tǒng)已經(jīng)非常難以維護和擴展了,但新需求的開發(fā)需要依賴這個系統(tǒng)荒叶,則可以為新系統(tǒng)開發(fā)一個外觀Facade類碾阁,來提供設計粗糙或高復雜度的遺留代碼的比較 清晰的簡單接口,讓新系統(tǒng)與Facade對象交互些楣,F(xiàn)acade與遺留代碼交互所有復雜的工作:
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末脂凶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子愁茁,更是在濱河造成了極大的恐慌蚕钦,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹅很,死亡現(xiàn)場離奇詭異嘶居,居然都是意外死亡,警方通過查閱死者的電腦和手機促煮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門邮屁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來整袁,“玉大人,你說我怎么就攤上這事佑吝∽迹” “怎么了?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵迹蛤,是天一觀的道長民珍。 經(jīng)常有香客問我,道長盗飒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任陋桂,我火速辦了婚禮逆趣,結果婚禮上,老公的妹妹穿的比我還像新娘嗜历。我一直安慰自己宣渗,他們只是感情好,可當我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布梨州。 她就那樣靜靜地躺著痕囱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪暴匠。 梳的紋絲不亂的頭發(fā)上鞍恢,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天,我揣著相機與錄音每窖,去河邊找鬼帮掉。 笑死,一個胖子當著我的面吹牛窒典,可吹牛的內容都是我干的蟆炊。 我是一名探鬼主播,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼瀑志,長吁一口氣:“原來是場噩夢啊……” “哼涩搓!你這毒婦竟也來了?” 一聲冷哼從身側響起劈猪,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤昧甘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后岸霹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疾层,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年贡避,在試婚紗的時候發(fā)現(xiàn)自己被綠了痛黎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片予弧。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖湖饱,靈堂內的尸體忽然破棺而出掖蛤,到底是詐尸還是另有隱情,我是刑警寧澤井厌,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布蚓庭,位于F島的核電站,受9級特大地震影響仅仆,放射性物質發(fā)生泄漏器赞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一墓拜、第九天 我趴在偏房一處隱蔽的房頂上張望港柜。 院中可真熱鬧,春花似錦咳榜、人聲如沸夏醉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽畔柔。三九已至,卻和暖如春臣樱,著一層夾襖步出監(jiān)牢的瞬間靶擦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工擎淤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留奢啥,地道東北人。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓嘴拢,卻偏偏與公主長得像桩盲,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子席吴,可洞房花燭夜當晚...
    茶點故事閱讀 45,930評論 2 361

推薦閱讀更多精彩內容

  • 1 場景問題# 1.1 生活中的示例## 外觀模式在現(xiàn)實生活中的示例很多赌结,比如:組裝電腦,通常會有兩種方案孝冒。 一個...
    七寸知架構閱讀 6,252評論 7 57
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,336評論 25 707
  • (1) “江可兒的男朋友庄涡,今晚早點回來吃飯唄量承!”給男朋友杜子辰發(fā)完微信,江可兒放下手機,就拿著鑰匙出門了撕捍。 “羊肉...
    晶格閱讀 471評論 2 7
  • 夏末秋初拿穴,北京的秋天悄悄地來了,在不知不覺中悄然來了忧风。 雖然是初秋默色,但天氣已經(jīng)漸漸涼起來了,秋高氣...
  • 夜?jié)u靜狮腿,曲漸輕腿宰,西樓月下無對影。 風遞相思情缘厢! 幾時迎吃度,幾時近,君思我心可相犹颉规肴? 雨停心難平。
    禾山遇君閱讀 302評論 0 1