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

企业视觉形象设计优化设计五年级下册数学答案

企业视觉形象设计,优化设计五年级下册数学答案,WordPress数据库防注入,深圳网络科技公司排名101、中介者模式的提出 在软件组件开发过程中,如果存在多个对象,且这些对象之间存在的相互交互的情况不是一一对应的情况,这种功能组件间的对象引用关系比较复杂,耦合度较高。如果有一些新的需求变化,则不易扩展。中介者…

1、中介者模式的提出

在软件组件开发过程中,如果存在多个对象,且这些对象之间存在的相互交互的情况不是一一对应的情况,这种功能组件间的对象引用关系比较复杂,耦合度较高。如果有一些新的需求变化,则不易扩展。中介者模式可以解决这种问题。中介者模式使用一个“中介对象”去管理对象间的关联关系,这个中介对象里面定义了对象间的数据统一交互接口,解耦对象间的直接交互依赖,从而提高代码的扩展性。

2、需求描述

有2个线上人员,这两个线上人员可以相互发送和接收对象的消息。设计一个线上人员数据交互的代码,且代码架构便于扩展。

3、中介者模式的代码实现

(1)UML图如下:

 

 (2)代码实现如下:

#include <iostream>
#include <vector>class Mediator;
class OnlinerPeople
{
protected:Mediator* mediator;
public:virtual void sendMsg(std::string msg)=0;virtual void receiveMsg(std::string msg)=0;virtual ~OnlinerPeople(){};
};class Mediator
{
protected:std::vector<OnlinerPeople*>vecOnlinePeoples;
public:virtual void sendMessage(std::string msg,OnlinerPeople* pepole)=0;virtual void addOnliners(OnlinerPeople* people)=0;virtual ~Mediator(){};
};class ConcreteMediator:public Mediator
{
public:void addOnliners(OnlinerPeople* people)override{vecOnlinePeoples.emplace_back(people);};virtual void sendMessage(std::string msg, OnlinerPeople *pepole) override{for(auto it =  vecOnlinePeoples.begin();it != vecOnlinePeoples.end(); it++){if( *it != pepole){(*it)->receiveMsg(msg);}}}
};class OnlinerPeople1:public OnlinerPeople
{
public:void Init(Mediator* mediator){this->mediator = mediator;}virtual void sendMsg(std::string msg) override{std::cout << "OnlinerPeople1 sendMsg: " << std::endl;mediator->sendMessage(msg,this);}virtual void receiveMsg(std::string msg) override{std::cout << "OnlinerPeople1 receive msg: " << msg << std::endl;}
};class OnlinerPeople2:public OnlinerPeople
{
public:void Init(Mediator* mediator){this->mediator = mediator;}virtual void sendMsg(std::string msg) override{std::cout << "OnlinerPeople2 sendMsg: " << std::endl;mediator->sendMessage(msg,this);}virtual void receiveMsg(std::string msg) override{std::cout << "OnlinerPeople2 receive msg: " << msg << std::endl;}
};
class Client
{
private:Mediator* mediator{nullptr};OnlinerPeople1 people1;OnlinerPeople2 people2;
public:Client(Mediator* p){mediator = p;people1.Init(mediator);people2.Init(mediator);};void DoWork(){mediator->addOnliners(&people1);mediator->addOnliners(&people2);people1.sendMsg("hello people2");people2.sendMsg("hello people1");};
};int main()
{Mediator* mediator = new ConcreteMediator();Client obj(mediator);obj.DoWork();delete mediator;mediator = nullptr;return 0;
}

 程序运行结果如下: 

http://www.shuangfujiaoyu.com/news/48666.html

相关文章:

  • 制作钓鱼网站教程手机端关键词排名优化
  • 外贸网站建站j推广之家官网
  • 什么网站做风险投资济南市最新消息
  • 造作网站模版太原seo关键词排名优化
  • 微信 购物网站开发潍坊百度网站排名
  • 南京网站建设南京百度指数怎么看
  • 网站备案去哪备案珠海网站设计
  • 专业做旗袍花的网站是什么网站打广告
  • 中兴建设云南有限公司网站最大的推广平台
  • 做网站定制开发的公司哪家好软文写作方法
  • 网站建设有哪些内容专业营销团队公司
  • 做个网站需要哪些东西优化网站建设seo
  • 做设计找参考的设计网站有哪些seo查询官方网站
  • 卓辉科技 网站建设系统优化助手
  • 祥网站建设网上兼职外宣推广怎么做
  • 广州网站优化排名哪家好如何开发自己的小程序
  • 简单网站制作代码制作一个简单的网站
  • 一级a做爰精免费网站网站的seo如何优化
  • 石狮制作网站网站营销
  • 网站信息架构网络营销概念是什么
  • 网站域名登百度关键词分析
  • 班级网站怎样做成都最好的seo外包
  • WordPress引用阿里云矢量图优化seo设置
  • 精准网站seo诊断报告成品人和精品人的区别在哪
  • 焦作维科网站建设公司上海百度seo公司
  • 网站如何配置域名云南疫情最新情况
  • 临沂网站建设服务商十大网络营销经典案例
  • 高端网站建设公司优化手机性能的软件
  • 如何给企业做网站推广西安网络推广公司网络推广
  • 自己做海报的网站itmc平台seo优化关键词个数