当前位置: 首页 > 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.pierceye.com/news/763956/

相关文章:

  • 江苏建设管理信息网站自己可以做装修效果图的网站
  • html网站欣赏杭州战争网站建设
  • 乐清市做淘宝网站公司网站支付体现功能怎么做
  • 做网站公司促销海报本网站只做信息展示
  • 网站建设商城模板仿我喜欢网站源码免费
  • 工商服务网优化网站推广
  • 嘉兴网站系统总部做一个网站一般要多少钱
  • win10电脑做网站网站为什么有价值是
  • 凡科网站建设视频impreza 4 wordpress
  • 北京大兴地区网站建设国外网站设计欣赏分析
  • 如何在网站中加入百度地图广东深圳软件开发公司
  • 诸城网站建设报价兰州网站建设公司有哪些
  • 技术网站的费用怎么做会计分录潍坊模板开发建站
  • 男生女生在床上做的那个网站公众号推广一个6元
  • 湛江做网站设计公司北京婚恋网站哪家最好
  • 大型网站建设的难点是什么物联网技术
  • 怎么免费建个免费的站点写作网站5妙不写就删除
  • 深圳网站建设软件开发公司排名网站做301的坏处
  • ai网站制作的图片
  • 自己想开个网站怎么弄移动端网站设计欣赏
  • 国外网站建站上海品牌策划设计
  • 郑州网站制作选择乐云seo网站建设误区图
  • 湖南智能网站建设多少钱会声会影免费模板网站
  • 社区网站建设方案书建站之星官方网站
  • 过时的网站什么公司做企业网站
  • 最新企业网站搜索引擎优化是做什么
  • 提高网站公信力 单仁手机设计培训网站建设
  • asp.net网站管理系统域名注册报备
  • 买了个网站后怎么做如何提高 网站的点击量
  • 哪些行业网站推广做的多o2o商城源码