设计模式——外观模式

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

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;
}
相关推荐
艾莉丝努力练剑11 分钟前
【优选算法必刷100题】第031~32题(前缀和算法):连续数组、矩阵区域和
大数据·人工智能·线性代数·算法·矩阵·二维前缀和
醉颜凉12 分钟前
环形房屋如何 “安全劫舍”?动态规划解题逻辑与技巧
c语言·算法·动态规划
大雨淅淅15 分钟前
一文搞懂动态规划:从入门到精通
算法·动态规划
不去幼儿园18 分钟前
【启发式算法】灰狼优化算法(Grey Wolf Optimizer, GWO)详细介绍(Python)
人工智能·python·算法·机器学习·启发式算法
随意起个昵称19 分钟前
【二分】洛谷P2920,P2985做题小记
c++·算法
没书读了25 分钟前
计算机组成原理-考前记忆清单
线性代数·算法
Hcoco_me1 小时前
大模型面试题5:矩阵(M*M)特征值分解的步骤
算法·机器学习·矩阵
非著名架构师1 小时前
极端天气下的供应链韧性:制造企业如何构建气象风险防御体系
大数据·人工智能·算法·制造·疾风气象大模型·风光功率预测
星轨初途2 小时前
数据结构排序算法详解(2)——选择排序(附动图)
c语言·数据结构·经验分享·笔记·b树·算法·排序算法
phdsky2 小时前
【设计模式】抽象工厂模式
c++·设计模式·抽象工厂模式