观察者模式——Observer Patten
- 现实场景
霍建华,胡歌和鹿晗都订阅了网易新闻,突然有一天,网易新闻更名为优先新闻,此时需要通知胡霍鹿。 - UML图
- 代码实现
github——观察者模式ObserverPatten - 核心原理
观察者模式所作的工作就是解除耦合。让耦合的双方都依赖于抽象,而不是依赖于具体。从而使得各自的变化不会影响另一边的变化,这样就大大地提高了程序的可维护性和可扩展性,也很好的符合了开放-封闭原则。 - 使用条件
- 当一个抽象模型有两个方面,其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。
- 当对一个对象的改变需要同时改变其它对象, 而不知道具体有多少对象有待改变。
- 当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之,你不希望这些对象是紧密耦合的。