大B:“讲了这么多,你现在能说说观察者模式的使用情况吗?”
小A:“1、当一个抽象模型有两个方面,其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。2、当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变。3、当一个对象必须通知其它对象,而它又不能假定其它对象是谁。”
大B:“换言之,你不希望这些对象是紧密耦合的。其实观察者模式同前面讲过的桥梁有着共同的使用环境:将变化独立封装起来,以达到最大的重用和解耦。观察者与桥梁不同的地方在于,观察者模式中的目标和观察者的变化不是独立的,而是有着某些联系。”