设计模式——外观模式

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

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;
}
相关推荐
点云侠9 分钟前
【2025最新版】PCL点云处理算法汇总(C++长期更新版)
c++·算法·计算机视觉·3d·可视化
zaiyang遇见1 小时前
【递归完全搜索】CCC 2008 - 24点游戏Twenty-four
算法·游戏·c/c++·全排列·信息学奥赛
Python智慧行囊1 小时前
排序算法总结
数据结构·算法
似水流年流不尽思念1 小时前
常见的排序算法有哪些?它们的平均时间复杂度是多少?
后端·算法
墨夏2 小时前
跨平台开发下的策略模式
设计模式·操作系统
楽码2 小时前
端到端应用Hmac加密
服务器·后端·算法
Morriser莫2 小时前
图论Day2学习心得
算法·图论
zyd09152 小时前
代码随想录Day50:图论(图论理论、深度搜索理论、所有可达路径、广度搜索理论)
java·数据结构·算法·leetcode·图论
Cl_rown去掉l变成C2 小时前
第R5周:天气预测
人工智能·python·深度学习·算法·tensorflow2
CoovallyAIHub3 小时前
VisDrone数据集,专为无人机视觉任务打造
深度学习·算法·计算机视觉