离弦之Ray

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  55 Posts :: 0 Stories :: 33 Comments :: 0 Trackbacks
 

       这是Head First Design Pattern里面介绍的第二个Pattern,叫做Observer Pattern,其核心概念就是一种一对多的关系。

其中的“一”,类似于定报纸系统的发送方,而“多”就是订阅方。当有新的“报纸”时,发送方将最新的报纸送达订阅方手中。发送方维护着一个订阅方的列表。

文中通过一个气象站的例子来解说这个模式。WeatherData实现Subject接口,里面包括所要传送的private 数据,还有注册Observer和去除Observer的方法。当数据有所更新时调用measurementChanged方法,这个方法再调用notifyObservers方法。

而在Observer那端,有一个subject对象的私有数据,通过构造函数将要注册的Subject作为参数来对它进行初始化,以此建立ObserverSubject的联系。

最后还介绍了java那建的Observer模式。通过继承Observable来成为Subject,通过实现Observer接口来成为Observer。但其有一定弊病,因为java不支持多继承,这就限制了使用这个模式的灵活性。所以我觉得以后如果真的用到Observer模式还是自己编程比较好。

posted on 2007-09-06 13:26 离弦之ray的技术天空 阅读(168) 评论(0)  编辑  收藏 所属分类: Design Pattern

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


网站导航: