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

如何销售自己产品方法有哪些北京网站制作网站优化

如何销售自己产品方法有哪些,北京网站制作网站优化,软件开发工具也称为什么工具,最讨厌网站1、中介者模式的提出 在软件组件开发过程中,如果存在多个对象,且这些对象之间存在的相互交互的情况不是一一对应的情况,这种功能组件间的对象引用关系比较复杂,耦合度较高。如果有一些新的需求变化,则不易扩展。中介者…

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.yayakq.cn/news/309459/

相关文章:

  • wordpress数据库在哪网站建设 seo
  • 推广 电子商务网站建设app开发平台开发
  • 福建省建设法制协会网站浙江省建设厅老网站
  • 四川建设厅官方网站九大员通知html5网站链接标签
  • 没有网站怎么做链接视频播放器长沙网页制作模板的网站
  • 医院网站建设需要多少钱网站推广工具有啥
  • 如何建网站做微信用什么网站
  • 网站.cc域名昆明企业建网站多少钱
  • 网站统计代码怎么添加在线画画网站
  • 用thinkphp做的网站自己能建设网站
  • 福建省建设执业资格注册中心网站wordpress英文版改成中文
  • 网站建设素材图片如何在iis下建设网站
  • 外国食品优秀设计网站海丰网站制作
  • 娱乐网站建设流程交互比较好的网站
  • 网站推广的方式手段有哪些做远程培训网站用什么系统
  • 广东哪有做网赌网站梧州网站优化价格
  • 电子商城网站开发项目描述承德做网站公司
  • 贵州网站推广电话网络文化经营许可证要多少钱
  • 网站开发成本分析设计模板免费网站
  • 杭州网站建设哪家快速上线个人博客网页设计html模板
  • 建站工具模板建站出海
  • 乐清网站设计公司哪家好营销效果分析怎么写
  • 中国建设银行网站对公业务流程国外大气网站
  • 3g版网站制作广告策划宣传公司
  • 阿坝网站建设营销活动策划公司
  • 大浪做网站个人社保缴费年限怎么查询
  • 做同城网站需要哪些手续工厂外贸网站建设
  • 帝国网站管理系统教程ps加dw做网站视频
  • 网站建设与服务考试电子商务网站首页
  • 校园网站建设情况说明做网站软件定制开发