趣谈设计模式 | 观察者模式(Observer) :消息的发布与订阅
文章目录 案例:文章推送 观察者模式 观察者模式的运作流程 观察者模式解决的问题 观察者模式大显身手 总结 要点 应用场景 生产者-消费者模型 VS 观察者模式 完整代码及文档 案例:文章推送 假设我是一个科幻小说爱好者,我维护着一个叫做ScienceFictionPusher的公众号,定期向豆瓣、知乎等平台推送那些我觉得有趣的科幻小说,于是为了方便管理,我的推送程序是这样的逻辑 class ScienceFictionPusher { public : //推送内容 void newPush ( ) { //分别向各大平台推送内容 _zhihu - > update ( _url , _title , _desc ) ; _douban - > update ( _url , _title , _desc ) ; } //设置新的内容 void setNewFiction ( const std :: string & url , const std :: string & title , const std :: string & desc ) { _url = url ; _title = title ; - _desc = desc ; newPush ( ) ; } private : std :: string _url ; //小说链接 std :: string