意图:
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。
适用性:
当一个抽象模型有两个方面, 其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。
当对一个对象的改变需要同时改变其它对象, 而不知道具体有多少对象有待改变。
当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之, 你不希望这些对象是紧密耦合的
我们来举一个博客的例子,博主写好了一篇博文,发布之后有两个读者在阅读博文,当博主发现一些博文需要修改,修改之后重新发布,那么正在阅读的两个读者应该都能都到通知多好!下面就按照上面uml图来实现这样的一个例子: