类图
代码
Observer
1 | interface Observer{ |
Subject
1 | interface Subject{ |
ConcreteObverser
1 | class WexinUserObserver implements Observer{ |
ConcreteSubject
1 | class SubscriptionSubject implements Subject{ |
测试类
1 | public class Main { |
运行结果
1 | 用户1收到了消息:某人专栏更新了 |
总结
概述
文中以类似微博订阅为例子,某人专栏更新后,用户1和用户2分别收到了订阅消息
优点
观察者和主题之间都是面向接口编程,主题不用观察者具体的实现,达到主题和观察者之间的解耦
缺点
如果观察者过多,可能会出现性能问题,要注意