设计模式——外观模式

外观模式类似迪米特法则,外观模式旨在将复杂的操作转化为一个接口给用户调用,省去了客户端细节的代码编写,以下的功能是存在三种模式,可选择开启或关闭,实现每一种功能需要开关不同的模式,如果将这些代码交给客户端编写,会有些麻烦,不如直接把一系列操作封装成一个类并提供接口:

cpp 复制代码
class mode1
{
public:
	void on()
	{
		cout << "开启" << endl;
	}
	void off()
	{
		cout << "关闭" << endl;
	}
};
class mode2
{
public:
	void on()
	{
		cout << "开启" << endl;
	}
	void off()
	{
		cout << "关闭" << endl;
	}
};
class mode3
{
public:
	void on()
	{
		cout << "开启" << endl;
	}
	void off()
	{
		cout << "关闭" << endl;
	}
};
class One_click_mode
{
public:
	void start()
	{
		m1->on();
		m2->off();
		m3->on();
	}
	~One_click_mode() 
	{
		delete m1;
		delete m2;
		delete m3;
	}
private:
	mode1* m1 = new mode1;
	mode2* m2 = new mode2;
	mode3* m3 = new mode3;
};
void test()
{
	One_click_mode* ocm = new One_click_mode;
	ocm->start();
}
int main()
{
	test();
	return 0;
}
相关推荐
C雨后彩虹5 小时前
竖直四子棋
java·数据结构·算法·华为·面试
不如自挂东南吱6 小时前
空间相关性 和 怎么捕捉空间相关性
人工智能·深度学习·算法·机器学习·时序数据库
洛生&6 小时前
Elevator Rides
算法
2501_933513046 小时前
关于一种计数的讨论、ARC212C Solution
算法
Wu_Dylan6 小时前
智能体系列(二):规划(Planning):从 CoT、ToT 到动态采样与搜索
人工智能·算法
散峰而望6 小时前
【算法竞赛】栈和 stack
开发语言·数据结构·c++·算法·leetcode·github·推荐算法
知乎的哥廷根数学学派6 小时前
基于多尺度注意力机制融合连续小波变换与原型网络的滚动轴承小样本故障诊断方法(Pytorch)
网络·人工智能·pytorch·python·深度学习·算法·机器学习
蚊子码农6 小时前
算法题解记录-208实现Trie前缀树
运维·服务器·算法
2301_800256116 小时前
【人工智能引论期末复习】第3章 搜索求解2 - 对抗搜索
人工智能·算法·深度优先
程序猿阿伟6 小时前
《量子算法开发实战手册:Python全栈能力的落地指南》
python·算法·量子计算