Observer模式

来源:互联网 发布:遗传算法与svm python 编辑:程序博客网 时间:2024/05/02 03:01

Observer模式
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。

何时使用
当一个抽象模型有两个方面, 其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。
当对一个对象的改变需要同时改变其它对象, 而不知道具体有多少对象有待改变。
当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之, 你不希望这些对象是紧密耦合的。

有何好处
以单独复用目标对象而无需同时复用其观察者, 反之亦然。
它也使你可以在不改动目标和其他的观察者的前提下增加观察者。
目标和观察者间的抽象耦合。
支持广播通信

潜在缺点
意外的更新 因为一个观察者并不知道其它观察者的存在, 它可能对改变目标的最终代价一无所知。

使用实例
MVC结构
MFC中的Document-View结构
Java中提供了Observer和Observerable接口 

原创粉丝点击