当前位置: 首页 > news >正文

网站别人帮做的要注意什么东西设计素材网站排版

网站别人帮做的要注意什么东西,设计素材网站排版,微商分销系统开发,华为erp企业管理系统软件运行在VS2022,x86,Debug下。 30. 外观模式 为子系统定义一组统一的接口,这个高级接口会让子系统更容易被使用。应用:如在游戏开发中,游戏引擎包含多个子系统,如物理、渲染、粒子、UI、音频等。可以使用外观…

运行在VS2022,x86,Debug下。

30. 外观模式

在这里插入图片描述

  • 为子系统定义一组统一的接口,这个高级接口会让子系统更容易被使用。
  • 应用:如在游戏开发中,游戏引擎包含多个子系统,如物理、渲染、粒子、UI、音频等。可以使用外观模式来封装这些复杂的子系统,提供一个简单的接口给游戏开发者,从而无需直接操作复杂的子系统,简化了开发流程。
  • 实现
    • 子系统。
    • 外观,提供统一的接口。
    • 客户端。
  • 代码如下。
    • 游戏引擎外观(GameEngineFacade类)使用单例模式,确保在整个游戏中只有一个外观实例,从而统一管理子系统资源。
// 物理引擎子系统
class PhysicsSystem
{
public:void init() { cout << "Initializing physics engine..." << endl;}void update() { cout << "Updating physics..." << endl; }
};//渲染子系统
class GraphicsSystem
{
public:void init() { cout << "Initializing graphics..." <<endl; }void render() { cout << "Rendering graphics..." << endl;}
};//粒子子系统
class ParticleSystem
{
public:void init() { cout << "Initializing particle..." << endl; }void createParticle() { cout << "Creating particle..." << endl; }
};//游戏引擎外观
class GameEngineFacade 
{
private:PhysicsSystem* physics;GraphicsSystem* graphics;ParticleSystem* particle;GameEngineFacade() //私有构造函数{physics = new PhysicsSystem();graphics = new GraphicsSystem();particle = new ParticleSystem();}~GameEngineFacade() //私有析构函数{if (physics){delete physics;physics = nullptr;}if (graphics){delete graphics;graphics = nullptr;}if (particle){delete particle;particle = nullptr;}}GameEngineFacade(const GameEngineFacade&) = delete; //删除拷贝构造函数GameEngineFacade& operator=(const GameEngineFacade&) = delete; //删除赋值运算符GameEngineFacade(GameEngineFacade&&) = delete; //删除移动构造函数GameEngineFacade& operator=(GameEngineFacade&&) = delete; //删除移动赋值运算符public:static GameEngineFacade* getInstance() //静态函数,获取实例{static GameEngineFacade instance; //局部静态变量,存储实例return &instance;}void initGame() {graphics->init();physics->init();particle->init();}void updateGame() {physics->update();particle->createParticle();}void renderGame() {graphics->render();}
};int main()
{GameEngineFacade* gameEngine = GameEngineFacade::getInstance();gameEngine->initGame();gameEngine->updateGame();
}

反汇编分析,子系统资源创建到释放过程

  • 第一次调用getInstance() 获取外观实例时:_Init_thread_header()和_Init_thread_footer()是多线程同步函数,确保局部静态变量初始化是线程安全的。GameEngineFacade()构造函数来创建实例,_atexit()注册实例的析构函数。如下图。

在这里插入图片描述

  • 执行完构造函数,创建了三个子系统,如下图。

在这里插入图片描述

  • main()返回,如下图。

在这里插入图片描述

  • _exit()执行析构函数或atexit注册的函数指针,最后结束程序,如下图。

在这里插入图片描述

  • 执行atexit注册的外观实例的析构函数,将三个子系统资源释放。

在这里插入图片描述

http://www.bjxfkj.com.cn/article/110257.html

相关文章:

  • 2018年怎样做淘宝客网站网站加速
  • 如何将域名指向网站seo对网店推广的作用
  • 安徽建站优化颍上县城乡住房建设局网站
  • 网站降权如何百度申诉银川免费网站建设
  • 微信微网站教程广东网页空间租赁
  • wordpress博客站点网页打不开网络正常怎么办
  • 什么是大型门户网站网站标题怎么写
  • 毕设 做网站微网站需要域名吗
  • 福田附近公司做网站建设哪家效益快wordpress 主页图片不显示
  • 公司企业做网站好做吗国内免费saas crm正在
  • 如何把旅行社网站做的好看wordpress rar附件
  • 融水做的比较好的网站有哪些商城网站建设企业
  • 本地用织梦做网站做苗木行业网站赚钱
  • 高清网站推广免费下载网站开发工程师绩效考核表
  • 制作网站难不难ASP.NET实用网站开发 课后答案
  • 网站建设之后需要维护吗北仑网站建设网站
  • 上海公司排名前十佛山seo管理
  • 济阳做网站哪家好在本地怎么做网站
  • 网站建设 体会网站开发作业总结
  • 科技 网站 推荐手机小程序怎么弄出来
  • 制作网站专业单页 网站模板
  • 手机购物网站模版wordpress 主要
  • 怎样做优惠券网站标智客免费logo设计
  • 摄影网站设计方案个人社保缴费记录查询官网
  • 网站如何增加百度权重的方法如何使用win2008iis建设网站
  • 做网站seo优化总结深圳专业网站建设
  • 做加盟正规网站手机怎么自己设计图片
  • 会议响应式网站开发网站怎么查询注册商
  • 北京著名网站建设网站建设与规划实训报告
  • 做一个国外的网站广州建设学校