2022-08-05 外觀模式

一.優(yōu)點

1.端屏蔽了?系統(tǒng)組件瞻佛,減少了客戶所需處理的對象數?梅忌,并
使得?系統(tǒng)使?起來更加容易。
2.它實現了?系統(tǒng)與客戶端之間的松耦合關系僧鲁,這使得?系統(tǒng)的變化不會
影響到調?它的客戶端虐呻,只需要調整外觀類即可。
3.?個?系統(tǒng)的修改對其他?系統(tǒng)沒有任何影響寞秃。

二.缺點

1.設計不當斟叼,增加新的?系統(tǒng)可能需要修改外觀類的源代碼,違背了
開閉原則春寿。

三.應用場景

1.復雜系統(tǒng)需要簡單??使?朗涩。
2.客戶端程序與多個?系統(tǒng)之間存在很?的依賴性。
3.在層次化結構中堂淡,可以使?外觀模式定義系統(tǒng)中每?層的??馋缅,層與
層之間不直接產?聯(lián)系,?通過外觀類建?聯(lián)系绢淀,降低層之間的耦合度萤悴。

ps:這不就是把功能類組合起來嗎

//appearance.hpp
#pragma once
#include <iostream>
class DVDPlay
{
public:
    void On()
    {
        std::cout << "打開了DVD" << std::endl;
    }
    void Off()
    {
        std::cout << "關閉了DVD" << std::endl;
    }
};

class VoiceBox
{
public:
    void On()
    {
        std::cout << "打開了音箱" << std::endl;
    }
    void Off()
    {
        std::cout << "關閉了音響" << std::endl;
    }
};

class XBox
{
public:
    void On()
    {
        std::cout << "打開了xbox游戲機" << std::endl;
    }
    void Off()
    {
        std::cout << "關閉了xbox游戲機" << std::endl;
    }
};
class TV
{
public:
    void On()
    {
        std::cout << "打開TV" << std::endl;
    }
    void Off()
    {
        std::cout << "關閉TV" << std::endl;
    }
};

class Microphone
{
public:
    void On()
    {
        std::cout << "麥克風打開了" << std::endl;
    }
    void Off()
    {
        std::cout << "麥克風關閉了" << std::endl;
    }
};

class Light
{
public:
    void On()
    {
        std::cout << "打開燈" << std::endl;
    }
    void Off()
    {
        std::cout << "關閉燈" << std::endl;
    }
};
//外觀類
class HomePlayFacade
{
public:
    //看電影
    void SeeMovic()
    {
        std::cout << "進入看電影模式" << std::endl;
        light.Off();
        tv.On();
        vioce_box.On();
    }
    void DoKtv()
    {
        std::cout << "智慧家庭進入KTV模式" << std::endl;
        tv.On();
        vioce_box.On();
        dvd.On();
        micro_phone.On();
    }
    //打游戲
    void PlayGame()
    {
        std::cout << "智慧家庭進? 游戲模式" << std::endl;
        tv.On();
        vioce_box.On();
        xbox.On();
    }
    //休息
    void Rest()
    {
        std::cout << "智慧家庭 休息模式" << std::endl;
        light.Off();
        tv.Off();
        vioce_box.Off();
        dvd.Off();
        micro_phone.Off();
        xbox.Off();
    }
private:
    Light light;
    Microphone micro_phone;
    TV tv;
    XBox xbox;
    VoiceBox vioce_box;
    DVDPlay dvd;
};
//main.cpp
#include "appearance.h"
#include <iostream>
int main()
{
    HomePlayFacade facade;
    facade.DoKtv();
    facade.PlayGame();
    facade.SeeMovic();
    facade.Rest();
    return 0;
}

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市皆的,隨后出現的幾起案子覆履,更是在濱河造成了極大的恐慌,老刑警劉巖费薄,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硝全,死亡現場離奇詭異,居然都是意外死亡楞抡,警方通過查閱死者的電腦和手機伟众,發(fā)現死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來召廷,“玉大人凳厢,你說我怎么就攤上這事【郝” “怎么了先紫?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長筹煮。 經常有香客問我遮精,道長,這世上最難降的妖魔是什么败潦? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任本冲,我火速辦了婚禮准脂,結果婚禮上,老公的妹妹穿的比我還像新娘眼俊。我一直安慰自己意狠,他們只是感情好,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布疮胖。 她就那樣靜靜地躺著环戈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪澎灸。 梳的紋絲不亂的頭發(fā)上院塞,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機與錄音性昭,去河邊找鬼拦止。 笑死,一個胖子當著我的面吹牛糜颠,可吹牛的內容都是我干的汹族。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼其兴,長吁一口氣:“原來是場噩夢啊……” “哼顶瞒!你這毒婦竟也來了?” 一聲冷哼從身側響起元旬,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤榴徐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后匀归,有當地人在樹林里發(fā)現了一具尸體坑资,經...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年穆端,在試婚紗的時候發(fā)現自己被綠了袱贮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡体啰,死狀恐怖攒巍,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情狡赐,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布钦幔,位于F島的核電站枕屉,受9級特大地震影響,放射性物質發(fā)生泄漏鲤氢。R本人自食惡果不足惜搀擂,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一西潘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧哨颂,春花似錦喷市、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至箫措,卻和暖如春腹备,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背斤蔓。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工植酥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弦牡。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓友驮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親驾锰。 傳聞我的和親對象是個殘疾皇子卸留,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內容