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

湖南网站建设哪家专业玄武网站制作收费报价

湖南网站建设哪家专业,玄武网站制作收费报价,怎么策划一个网站,c语言做网站的代码这篇文章比较短,修改自 写给大家看的设计模式之中介者中的例子中介者模式的定义和目的自不必说, 参考上文即可. 本文针对实现方式做一个补充. 中介者模式增加了一个第三方对象(中介者)来控制两个对象(同事)间的交互. 有助于对彼此通信的解耦, 毕竟他们并不需要关心对方的实现细… 这篇文章比较短,修改自 写给大家看的设计模式之中介者中的例子中介者模式的定义和目的自不必说, 参考上文即可. 本文针对实现方式做一个补充. 中介者模式增加了一个第三方对象(中介者)来控制两个对象(同事)间的交互. 有助于对彼此通信的解耦, 毕竟他们并不需要关心对方的实现细节. 例子中给出了ChatRoom作为第三方中介者, 而User作为真正的通信对象, 每个用户发送的消息实际上是在ChatRoom中进行了广播. 对于通信的接耦有两种方式: User调用第三方对象的方法, 进行消息或者动作的传递, 比如上文中的实现即调用了ChatRoom的ShowMessage方法.不同的对象不通过方法调用来交互, 而是通过消息总线传递消息体.实现 这里针对第二点给出实现, 这里利用boost::signal2来实现ChatRoom对消息体订阅, 各User对象实例负责信息的发布. #include iostream #include string #include ctime #include iomanip #include boost/signals2/signal.hpp using namespace std; using namespace boost::signals2;// Message struct EventMessage {virtual ~EventMessage() default;virtual void showMessage() const 0; }; struct ChatMessage : public EventMessage {string username;string message;ChatMessage(const string username, const string message) : username(username), message(message) {}void showMessage() const override {std::time_t now std::time(nullptr);std::cout std::put_time(std::localtime(now), %Y-%m-%d %H:%M:%S) [ username ]: message std::endl;} };// EventBus - ChatRoom struct EventBus {signalvoid(EventMessage *) sig;EventBus() {sig.connect([](EventMessage *e){ChatMessage *mess dynamic_castChatMessage *(e);if(mess) {mess-showMessage();}});} };// instance struct User {string name_;EventBus event;User(const string name_, EventBus event) : name_(name_), event(event) {}void send(const string message) {ChatMessage chatMessage(name_, message);event.sig(chatMessage);} };int main() {EventBus bus;User john(John Doe, bus);User jane(Jane Doe, bus);john.send(Hi, there!);jane.send(Hey!); } 优点 当前的例子的业务模型实际比较简单, 如果业务变的复杂(比如还要支持私信即可定点sendMessage新增广播消息即每个用户需要支持received), 如果继续使用方法传递,那么ChatRoom为了和User通信,互相调用来调用去,很容易晕掉, 而只用通过订阅事件进行的数据传递,数据生产者和使用者在注册的时候就清晰明了,不容易出错.
http://www.zqtcl.cn/news/763956/

相关文章:

  • 网站建设与管理 答案国外做免费的视频网站有哪些
  • 网站建设电脑端手机端企业网站建设需求调研表
  • 怎么做游戏网站google国际版
  • 学校网站建设发展规划线上推广的渠道有哪些
  • 公主岭网站建设seo网站推广技术
  • 网站建设一次crm管理
  • 电商网站设计公司优选亿企邦wordpress管理员头像
  • 医院做网站需要多少钱wordpress 模板 设计
  • 建设网站的规则建设公司网站的原则
  • 专业网站定制 北京龙泉驿网站seo
  • 网站标签是什么网站flash导入页
  • 城市网站建设摘要论文网站建设基本步骤包括哪些
  • 如何做招聘网站分析wordpress状态修改
  • 兰考网站建设微信运营是干嘛的
  • 网站ps照片怎么做的网站开发项目实训报告
  • 做流量网站it建设人才网
  • 杭州拱墅区网站建设推荐定制型网站建设
  • 网站建设需要达到什么样的效果上海营销网站推广多
  • 现代化公司网站建设长沙公司网站建立
  • 网站开发需要哪些人才辽宁奔之流建设工程有限公司网站
  • 做旅游产品的网站有哪些个人做搜索网站违法吗
  • 营销型网站的功能网站制作价钱多少
  • angularjs 网站模板工作感悟及心得
  • 福州 网站定制设计哈尔滨网站建设咨询
  • 酒吧网站模板创办网页
  • 外贸网站建设软件有哪些现在网站建设用什么语言
  • lnmp wordpress 主题不见高级seo课程
  • 成都哪家公司做网站最好杭州软件开发
  • 做网站多少宽带够wordpress编辑文章中图片
  • 无锡网站制作排名软件工程公司