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

如何做网站标头什么是百度推广

如何做网站标头,什么是百度推广,怎样做网站域名,html课设做网站运行在VS2022,x86,Debug下。 31. 中介者模式 中介者模式允许对象之间通过一个中介者对象进行交互,而不是直接相互引用。可以减少对象之间的直接耦合,同时集中化管理复杂的交互。应用:如在游戏开发中,可以使…

运行在VS2022,x86,Debug下。

31. 中介者模式

在这里插入图片描述

  • 中介者模式允许对象之间通过一个中介者对象进行交互,而不是直接相互引用。可以减少对象之间的直接耦合,同时集中化管理复杂的交互。
  • 应用:如在游戏开发中,可以使用中介者模式来管理游戏对象之间的碰撞检测。这意味着当一个游戏对象需要检测与其他对象的碰撞时,它不需要直接与其他所有游戏对象进行交互,而是通过中介者来进行交互。
  • 实现
    • 同事接口,定义中介者对象,用来调用中介者的接口。
    • 具体同事类。
    • 中介者接口,定义让同事类操作的接口。
    • 具体中介者,定义所有同事类对象,负责同事类对象之间的交互。
  • 代码如下。
class GameMediator;//同事类:游戏对象类
class GameObject 
{
protected:GameMediator* gameMediator;string objectName;public:GameObject(GameMediator* mediator,const string& name): gameMediator(mediator), objectName(name){}string getName() const { return objectName; }virtual void HandleCollision(GameObject* other) = 0; //处理碰撞
};//中介者:游戏中介类
class GameMediator
{
public:virtual void notify(const string& event, void* data) = 0; //事件通知
};//具体同事类:玩家类
class Player : public GameObject
{
public:Player(GameMediator* mediator, const string& name) : GameObject(mediator,name) {}void jump() {cout << getName() << " is jumping!" << endl;gameMediator->notify("collision", this); //由中介者调用碰撞检测函数}void HandleCollision(GameObject* other){cout << getName() << " took damage and collided with " << other->getName() << endl;}
};//具体同事类:障碍物类
class Obstacle : public GameObject 
{
public:Obstacle(GameMediator* mediator, const string& name) : GameObject(mediator, name) {}void movement(){cout << getName() << " is moving!" << endl;gameMediator->notify("collision", this); //由中介者调用碰撞检测函数}void HandleCollision(GameObject* other){cout << getName() << " collided with " << other->getName() << endl;}
};// 具体中介者: 游戏引擎类
class GameEngine : public GameMediator
{
public:void notify(const string& event, void* data) //根据事件通知相关的子系统{if (event == "collision") {CheckCollision(static_cast<GameObject*>(data));}//...}void setGameObjects(const vector<GameObject*>& objects) { gameObjects = objects;}private:vector<GameObject*> gameObjects;void CheckCollision(GameObject* source) const{//检测与所有游戏对象之间的碰撞for (auto&& target : gameObjects) {if (source != target){//如果发生碰撞,由游戏对象调用处理碰撞函数source->HandleCollision(target);}}}
};int main()
{//创建中介者GameEngine GEmediator;//创建各游戏对象Player player(&GEmediator, "Player");Obstacle Crates(&GEmediator, "Crates");Obstacle Trees(&GEmediator,"Trees");Obstacle Cars(&GEmediator, "Cars");//中介者管理所有游戏对象, 负责所有游戏对象之间的交互GEmediator.setGameObjects({ &player, &Crates, &Trees, &Cars });//游戏对象移动player.jump();Cars.movement();return 0;
}
http://www.tj-hxxt.cn/news/6434.html

相关文章:

  • 怎样可以做网站系统优化软件推荐
  • 北京什么网站找工作万物识别扫一扫
  • 做介绍的英文网站seo 优化技术难度大吗
  • 网站开发的项目流程如何制定会员营销方案
  • 盘锦门户网站制作北京seo优化哪家好
  • 用nas做网站百度seo排名优化软件化
  • 怎么制作app网站推广如何做网上引流
  • 微信网站设计运营武汉百度推广外包
  • 做引流去那些网站好百度站长工具排名
  • 网站开发工具安卓版中国第一营销网
  • app外包平台大概多少钱基本seo
  • 山西招标网seo新人怎么发外链
  • 网站开发流程java专业的google推广公司
  • 怎么快速建一个网站公众号软文怎么写
  • 地方网站运营方案百度seo排名优化技巧分享
  • 容桂网站制作值得信赖seo技术教程博客
  • 做装修网站卖钱百度应用app
  • 如何撤销网站备案赣州网站建设公司
  • 网页制作手机软件洛阳seo网站
  • 国外做的比较的ppt网站有哪些方面精品成品网站源码
  • 哪个网站可以做中国代购全国广告投放平台
  • 北京移动网站建设百度收录规则2022
  • 如何建设诗词网站最新新闻热点话题
  • 电子商务基础网站建设今天微博热搜前十名
  • 卧龙区网站建设百度客服人工电话
  • 深圳做网站的爱情独白广州新闻最新消息今天
  • 做教育app的网站有哪些内容seo技术公司
  • 用easyui做的网站百度关键词热度排名
  • 私人让做彩票网站吗seo网站关键词优化方法
  • 皇马logo做网站做网站需要准备什么