【设计模式】外观模式/门面模式(Facaed)

目录

一、问题导入

二、代码实现(仅供参考)

三、课件内容

1.为什么用(Why)

2.什么时候用(When)

3.怎么用(How)

四、优劣

1.优势

2.劣势


前言:这个设计模式比较简单,课堂只用了一分钟带过,我尽量少讲点

一、问题导入

做游戏的时候,每一帧都得干三件事:读键鼠输入、更游戏逻辑、渲染画面。

要是没有统一的办法,客户端每次都得自己写三行代码,挨个调这三个函数。不仅得记准顺序,漏一个步骤游戏就崩了,重复写还特别麻烦。

这时候就需要一个 "总按钮"------ 把这三步打包好,客户端点一下 "跑一帧",后面的事全搞定。外观模式,就相当于这个总按钮。

二、代码实现(仅供参考)

可以看到,所有的逻辑都被整合到了on_tick函数当中,外部只需要调用on_tick即可。

cpp 复制代码
#pragma once

#include<iostream>

namespace _FacadePattern
{
	class TickUpdate
	{
	public:
		void on_event()
		{
			std::cout << "键鼠输入读入" << std::endl;
		}
		void on_update()
		{
            std::cout << "游戏更新" << std::endl;
		}
        void on_render()
        {
            std::cout << "游戏渲染" << std::endl;
        }
        void on_tick()
        {
			on_event();
			on_update();
			on_render();
        }
	};

	void test()
	{
        TickUpdate *tick=new TickUpdate();
        tick->on_tick();
		//内存释放
		delete tick;
	}
}

三、课件内容

1.为什么用(Why)

(1)为子系统中的一组接口提供一个一致的接口

(2)定义一个更高级别的接口,使子系统更易于使用。

(3)降低访问复杂系统内部子系统的复杂性,简化客户端之间的接口。

2.什么时候用(When)

(1)为外部访问复杂模块或子系统提供一个接口。

(2)降低单个代码质量对整个项目的影响和风险。

(3)子系统相对独立 ------ 对其子系统的外部访问仅需进行黑盒操作。

3.怎么用(How)

(1)用更简单的接口包装复杂的子系统。

(2)在客户端和复杂系统之间添加另一层,用于处理调用顺序、依赖关系等。

四、优劣

1.优势

(1)降低系统间的相互依赖。

(2)提升灵活性。

(3)增强安全性。

2.劣势

不符合开闭原则(OCP)。

相关推荐
workflower15 小时前
人形机器人灵巧手产业链
人工智能·设计模式·机器人·云计算·无人机
Java后端的Ai之路16 小时前
03、Python - 抽象工厂模式
开发语言·python·设计模式·抽象工厂模式·通用智慧
AI人工智能+电脑小能手21 小时前
大白话说Java设计模式-45-解释器模式(源码剖析篇)
java·设计模式·解释器模式·源码分析·pattern·spel·javacc
码匠许师傅1 天前
【设计模式精讲】4.单例模式(Singleton)
c++·单例模式·设计模式
雾削木1 天前
2026 编程领域热点知识速览:AI 辅助开发、设计模式实战与嵌入式高效迭代
人工智能·设计模式
AI人工智能+电脑小能手2 天前
大白话说Java设计模式-42-访问者模式(业务实战篇)
java·spring·设计模式·访问者模式·asm·营销规则·数据结构与操作分离
AI人工智能+电脑小能手2 天前
大白话说Java设计模式-43-访问者模式(源码剖析篇)
java·设计模式·访问者模式·源码分析·elementvisitor·asm classvisitor·spring spel
Michael_lcf3 天前
Agent设计模式:思考-行动-观察循环的本质与局限
设计模式·agent设计模式·agent设计模式的本质
丰锋ff3 天前
设计模式学习笔记
笔记·学习·设计模式
米啦啦.3 天前
设计模式/
观察者模式·单例模式·设计模式·工厂模式