观察者模式:
定义了一种一对多的依赖关系,当一个对象改变状态时,所有依赖它的对象都会被通知到,然后自动的去更新.
使用的场景:
1.当一个对象的改变会要求其他关系的改变,但你不知道有但是对象需要改变.
2.当你的抽象逻辑有俩个方面,一个方面会依赖另一个方面的时候.
3.当你不想让这个对象之间的关系太紧时,也就是说你想降低对象间的耦合度,但是这些对象又确实是有所依赖的时候.
然后看了一下一个简单的实例.所有的observer都是实现了一个observer的接口,然后被观察的类可以把这些observer的实体对象加入到这个类的一个链表里.
然后当被观察的类的状态改变的时候,就会依次调用存储的Observer对象中的方法,对各个observer进行更新.
这个实例和EventBus对比一下,EventBus确实是更加的具有灵活性.我觉得一个原因主要是用到了java的反射,然后使得类与类之间的耦合读很小.这个设计的方法和抽象工厂中利用反射来改变所生产的产品的品牌很相似.