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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

设计模式:外观模式(C++)【颜值很重要】

發(fā)布時間:2025/3/15 c/c++ 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式:外观模式(C++)【颜值很重要】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

外觀模式介紹

外觀 外觀 從名字都可以看出來對 顏值很看重唄。21世紀都是刷臉的時代,當然顏值很重要。那么對于我們寫的代碼 也一樣,也需要好看的顏值,記得有本書叫 《代碼整潔之道》 說的就是相關的內(nèi)容。在我們的設計模式中呀,我們給用戶呈現(xiàn)的應該是一個簡單且統(tǒng)一的接口,我們不需要把接口實現(xiàn)的細節(jié)讓用戶知道,當然用戶也不想知道你是怎么實現(xiàn) 。這也就是我們設計模式中的最少知道原則,又被稱為 迪米特法則。那我們的外觀模式呢就是圍繞這個進行展開的

外觀模式,為子系統(tǒng)中的一組接口提供一個一致的界面(對外提供),此模式定義了一個高層接口,這個接口使的這一子系統(tǒng)更加容易使用。下面看看外觀模式的標準模型圖。

外觀模式模型圖


外觀模式案例

我們就用一個智能家居系統(tǒng)舉例吧,智能家居系統(tǒng) 有KTV模式、觀影模式,這是對外也就是給客戶提供的。具體到KTV模式需要運行一些子系統(tǒng),比如說 什么 燈光系統(tǒng)、音響系統(tǒng)、麥克風系統(tǒng)呀 這些 統(tǒng)統(tǒng) 沒必要讓用戶知道和操作,我們的外觀類具體進行負責 對客戶對外就提供簡潔的界面,內(nèi)部自己實現(xiàn)那些子系統(tǒng)的調(diào)用。

智能家居代碼

#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std;class LightSystem { public:void on(){cout << "開燈..." << endl;}void off(){cout << "關燈..." << endl;} }; class MovieSystem { public:void on(){cout << "放電影..." << endl;}void off(){cout << "關閉電影..." << endl;} }; class SounderSystem { public:void on(){cout << "打開音響..." << endl;}void off(){cout << "關閉音響..." << endl;} }; class MusicSystem { public:void on(){cout << "放音樂..." << endl;}void off(){cout << "關閉音樂..." << endl;} }; class MicrophoneSystem { public:void on(){cout << "麥克風打開..." << endl;}void off() {cout << "麥克風關閉..." << endl;} }; //智能生活,給用戶提供簡潔的界面 class HomeSystem { public://KTV模式...void OpenKTV(){//關燈light.off();//打開音響sounder.on();//音樂走起music.on();//打開麥克風microphone.on();cout << "*********KTV模式 歡迎您********" << endl;}void CloseKTV(){light.on();sounder.off();music.off();microphone.off();cout << "**********KTV模式 已經(jīng)關閉********" << endl;}//觀影模式...void OpenMovie(){//關燈light.off();//打開音響sounder.on();//放電影sounder.on();cout << "*********家庭影院模式 歡迎您********" << endl;}void CloseMovie(){light.on();sounder.off();sounder.off();cout << "*********家庭影院模式 已經(jīng)關閉********" << endl;} private:LightSystem light;MovieSystem movie;MusicSystem music;SounderSystem sounder;MicrophoneSystem microphone; };//客戶端 只需要和系統(tǒng)統(tǒng)一的接口進行 交互,沒有必要知道更多 -->迪米特法則(最少知道原則) //給用用戶提供 簡潔的接口 是外觀模式 最重要的一點 int main(int argc, char *argv[]) {HomeSystem home;home.OpenKTV();//開啟KTV模式home.CloseKTV();home.OpenMovie();//開啟電影模式home.CloseMovie();return EXIT_SUCCESS; }


代碼運行結果


總結

以上是生活随笔為你收集整理的设计模式:外观模式(C++)【颜值很重要】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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