C++設(shè)計(jì)模式之外觀模式(Facade)
外觀模式應(yīng)該是程序員最下意識(shí)用的一種模式,比如我們習(xí)慣性的對(duì)復(fù)雜系統(tǒng)做一個(gè)封裝接口。外觀模式其本質(zhì)是對(duì)一堆復(fù)雜對(duì)象和應(yīng)用的接口抽象,對(duì)它們進(jìn)行封裝隔離,對(duì)于調(diào)用者來說只需要關(guān)系接口的實(shí)現(xiàn),而不需要知道內(nèi)部有哪些對(duì)象和調(diào)用。
作用
為模塊的一組接口提供一致的界面,定義了一個(gè)高層接口,這個(gè)接口使得這一模塊更加容易使用。
類視圖

實(shí)現(xiàn)
//復(fù)雜或多對(duì)象
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";
}
}
//外觀實(shí)現(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();
}
應(yīng)用場(chǎng)景
- 構(gòu)建上下層次的模塊時(shí),如果上下進(jìn)行調(diào)用,則會(huì)出現(xiàn)強(qiáng)耦合,用外觀模式實(shí)現(xiàn)上下級(jí)模塊的接口,簡(jiǎn)化相互調(diào)用的交叉,降低上下層的耦合度;
- 在多個(gè)復(fù)雜模塊相互協(xié)作工作時(shí),向上用外觀類提煉出高層接口,對(duì)外隱藏其內(nèi)部的實(shí)現(xiàn)并隔離變化;
- 對(duì)單獨(dú)模塊或者對(duì)復(fù)雜模塊的封裝,提煉出外觀類進(jìn)行封裝訪問,解耦合。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C++設(shè)計(jì)模式之策略模式(Strategy)
- C++設(shè)計(jì)模式之模板方法模式(TemplateMethod)
- C++設(shè)計(jì)模式之觀察者模式(Observer)
- C++設(shè)計(jì)模式之迭代器模式(Iterator)
- C++設(shè)計(jì)模式之適配器模式(Adapter)
- C++設(shè)計(jì)模式之建造者模式(Builder)
- C++設(shè)計(jì)模式之裝飾模式(Decorator)
- C++設(shè)計(jì)模式之代理模式(Proxy)
- C++和java設(shè)計(jì)模式之單例模式
- C++設(shè)計(jì)模式之享元模式(Flyweight)
相關(guān)文章
C++實(shí)現(xiàn)分水嶺算法(Watershed Algorithm)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)分水嶺算法Watershed Algorithm,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一 下2018-01-01
VS2019創(chuàng)建c++動(dòng)態(tài)鏈接庫dll與調(diào)用方法實(shí)踐
動(dòng)態(tài)鏈接庫是一個(gè)包含可由多個(gè)程序同時(shí)使用的代碼和數(shù)據(jù)的庫,本文主要介紹了VS2019創(chuàng)建c++動(dòng)態(tài)鏈接庫dll與調(diào)用方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06

