城市猎人

在一网情深的日子里,谁能说得清是苦是甜,只知道确定了就义无反顾
posts - 1, comments - 7, trackbacks - 0, articles - 89

模式(二):观察者(Observer)模式

Posted on 2008-07-19 14:58 sailor 阅读(127) 评论(0)  编辑  收藏 所属分类: 模式
1、定义

    在对象之间定义一对多的依赖,这样一来,当一个对象改变时状态,依赖他的对象会收到通知,并自动更新。这种模式以松耦合方式在一些列对象之间改变状态。MVC模式就是观察者模式的一个代表。

2、实用性

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

3、设计原则

    找出程序中会变化的方面,然后将其和固定不变的方面相分离
        在观察者模式中,会改变的是主题的状态,以及观察者的数目和类型。用这个模式,你可以依赖于主题状态的对象,却不必改变主题。这就叫提前规划。

    针对接口编程,不针对实现编程
        主题与观察者都使用接口:观察者利用主题的接口,向主题注册;而主题利用观察者的接口通知接口。这样可以让两者之间运作正常,又同事具有松耦合的优点。

    多用组合,少用继承
        观察者模式利用“组合”,将许多观察者组合进主题中。对象之间的这种关系不是通过继承产生的,而是在运行时利用组合的方式而产生的。
 
4、实现
   



只有注册用户登录后才能发表评论。


网站导航: