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

如何做网站标头中国旺旺(00151) 股吧

如何做网站标头,中国旺旺(00151) 股吧,wordpress不能播放wmv,家庭做网站运行在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.hengruixuexiao.com/news/28888.html

相关文章:

  • 奖励网站代码百度关键词指数排行
  • 如何查询网站是否有做404武汉网络推广广告公司
  • b2c购物网站有哪些培训班有哪些
  • 看谁做的好舞蹈视频网站网络推广人员是干什么的
  • 网站设计如何做策划查看今日头条
  • 响应式网站建设原则深圳网络推广培训中心
  • 申请域网站网店怎么开
  • eclipse开发网站开发大丰seo排名
  • 特产网站设计武汉网络关键词排名
  • 太原网站建设加q.479185700管理系统
  • 网站png小图标怎么做本地免费发布信息网站
  • 中国网站排名前100百度seo营销推广多少钱
  • 网页创建站点软文广告平台
  • 建设网站要注意哪些seo服务方案
  • web前端怎么制作网站镇江市网站
  • 陕西做网站的公司在哪seo是什么简称
  • 域名解析到别人网站东莞seo建站优化哪里好
  • 个人可以做建站网站么百度公司招聘条件
  • 政府网站建设管理办法谷歌推广新手教程
  • 东莞网站建设制作公司东莞百度快速排名优化
  • wordpress开启子域名多站帮平台做推广怎么赚钱
  • 如何做淘宝代购网站设计北京网站优化对策
  • wordpress 目录菜单惠州企业网站seo
  • logo设计找什么公司长沙官网网站推广优化
  • 做一个交易网站要花多少钱网站收录怎么弄
  • 如何做医药类网站网络推广靠谱吗
  • 网站制作导航超链接怎么做品牌型网站制作价格
  • wordpress建站教程视频教程网络营销发展现状与趋势
  • 运营 网站竞价推广的企业
  • 小说网站制作广州优化营商环境条例