设计模式总篇-外观模式

 #define __CRT_SECURE_NO_WARNINGS


#include<iostream>
//#include<vld.h>
//using namespace std;
class SubSys1
{
public:
	void Method1()
	{
		std::cout << "方法1" << std::endl;
	}
};

class SubSys2
{
public:
	void Method2()
	{
		std::cout << "方法2" << std::endl;
	}
};

class SubSys3
{
public:
	void Method3()
	{
		std::cout << "方法3" << std::endl;
	}
};

class Facade
{
private:
	SubSys1 *sub1;
	SubSys2 *sub2;
	SubSys3 *sub3;
public:
	Facade()
	{
		sub1 = new SubSys1();
		sub2 = new SubSys2();
		sub3 = new SubSys3();
	}
	~Facade()
	{
		if (sub1 != nullptr)
		{
			delete sub1;
			sub1 = nullptr;
		}

		if (sub2 != nullptr)
		{
			delete sub2;
			sub2 = nullptr;
		}

		if (sub3 != nullptr)
		{
			delete sub3;
			sub3 = nullptr;
		}
	}

	void FacadeMethon()
	{
		sub1->Method1();
		sub2->Method2();
		sub3->Method3();
	}
};


int main(int argc, char **argv)
{
	Facade *facade = new Facade();
	facade->FacadeMethon();

	if (facade != nullptr)
	{
		delete facade;
	}

	return 0;
}
发布了141 篇原创文章 · 获赞 1 · 访问量 5321

猜你喜欢

转载自blog.csdn.net/wjl18270365476/article/details/104411330