【C++设计模式】外观模式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zxh2075/article/details/82875978
#ifndef __FACADE_H__
#define __FACADE_H__

#include <iostream>

//外观模式:为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

//引入外观角色之后,用户只需要直接与外观角色交互,用户与子系统之间的复杂关系由外观角色来实现,从而降低了系统的耦合度。

class SubSystemA
{
public:
	void DoSomething1();
};

class SubSystemB
{
public:
	void DoSomething2();
};

class SubSystemC
{
public:
	void DoSomething3();
};

class Facade
{
public:
	void DoSomething();
private:
	SubSystemA m_a;
	SubSystemB m_b;
	SubSystemC m_c;
};

void TestFacade();


#endif

#include "Facade.h"


void SubSystemA::DoSomething1()
{
	std::cout<< "SubSystemA DoSomething" <<std::endl;
}

void SubSystemB::DoSomething2()
{
	std::cout<< "SubSystemB DoSomething" <<std::endl;
}

void SubSystemC::DoSomething3()
{
	std::cout<< "SubSystemC DoSomething" <<std::endl;
}

void Facade::DoSomething()
{
	m_a.DoSomething1();
	m_b.DoSomething2();
	m_c.DoSomething3();
}

void TestFacade()
{
	Facade * facade = new Facade();

	facade->DoSomething();

	delete facade;

	return;
}

猜你喜欢

转载自blog.csdn.net/zxh2075/article/details/82875978