业务场景:
要实现一个新闻评论的功能:提交或删除留言后,需要自动追加留言,更新留言条数。
原来的新闻评论功能分为三个模块:留言模块、用户模块、提交模块,分别属于三个不同的开发者负责。
为了避免合并模块,不和其他模块的代码相互影响,可以使用观察者模式。
观察者模式:
23种设计模式之一,属于行为型设计模式,主要用于解决模块间的耦合。
1 创建观察者对象:包括注册消息、发布消息两个方法。
2 主动触发(提交)的是被观察对象发布消息,被动触发的是订阅者注册消息。所以,追加留言(留言模块)、改变留言条数(用户模块)中调用观察者对象的注册消息方法;删除留言(留言模块)、提交留言(提交模块)中调用观察者对象的发布消息方法。