C++設(shè)計模式之外觀模式(Facade)
更新時間:2018年03月28日 10:40:33 作者:chencarl
這篇文章主要為大家詳細介紹了C++設(shè)計模式之外觀模式(Facade),具有一定的參考價值,感興趣的小伙伴們可以參考一下
外觀模式應該是程序員最下意識用的一種模式,比如我們習慣性的對復雜系統(tǒng)做一個封裝接口。外觀模式其本質(zhì)是對一堆復雜對象和應用的接口抽象,對它們進行封裝隔離,對于調(diào)用者來說只需要關(guān)系接口的實現(xiàn),而不需要知道內(nèi)部有哪些對象和調(diào)用。
作用
為模塊的一組接口提供一致的界面,定義了一個高層接口,這個接口使得這一模塊更加容易使用。
類視圖

實現(xiàn)
//復雜或多對象
class objectOne
{
public void operator()
{
cout<<"operator one\n";
}
}
class objectTwo
{
public void operator()
{
cout<<"operator two\n";
}
}
class objectThree
{
public void operator()
{
cout<<"operator three\n";
}
}
class objectFour
{
public void operator()
{
cout<<"operator four\n";
}
}
//外觀實現(xiàn)
class Facade
{
objectOne one;
objectTwo two;
objectThree three;
objectFour four;
public Facade()
{
obj1 = new objectOne();
obj2 = new objectTwo();
obj3 = new objectThree();
obj4 = new objectFour();
}
public void MethodA()
{
cout<<" Fun A()-----\n");
obj1.operator();
obj2.operator();
obj3.operator();
obj4.operator();
}
public void MethodB()
{
cout<<" Fun B()-----\n");
obj4.operator();
obj3.operator();
obj2.operator();
obj1.operator();
}
}
//調(diào)用
void main()
{
Facade facade = new Facade();
facade.MethodA();
facade.MethodB();
}
應用場景
- 構(gòu)建上下層次的模塊時,如果上下進行調(diào)用,則會出現(xiàn)強耦合,用外觀模式實現(xiàn)上下級模塊的接口,簡化相互調(diào)用的交叉,降低上下層的耦合度;
- 在多個復雜模塊相互協(xié)作工作時,向上用外觀類提煉出高層接口,對外隱藏其內(nèi)部的實現(xiàn)并隔離變化;
- 對單獨模塊或者對復雜模塊的封裝,提煉出外觀類進行封裝訪問,解耦合。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
簡單聊聊C++中回調(diào)函數(shù)的實現(xiàn)
回調(diào)函數(shù)就是一個通過函數(shù)指針調(diào)用的函數(shù),如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一個函數(shù),當這個指針被用來調(diào)用其所指向的函數(shù)時,我們就說這是回調(diào)函數(shù),下面這篇文章主要給大家介紹了關(guān)于C++中回調(diào)函數(shù)實現(xiàn)的相關(guān)資料,需要的朋友可以參考下2022-01-01
淺談C++中thread庫join和detach的區(qū)別
這篇文章主要為大家介紹了C++中thread庫join和detach的區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-11-11
在vscode中快速新建html文件的2種方法總結(jié)
這篇文章主要給大家介紹了關(guān)于在vscode中快速新建html文件的2種方法,以及如何快速打開HTML文件查看編輯效果的方法,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2022-04-04

