Android中观察者模式的实现--第二届 Google 暑期大学生博客分享大赛 - 2011 Android 成长篇


本文为第二届 Google 暑期大学生博客分享大赛 - 2011 Android 成长篇参赛作品

观察者模式的定义可以参见wiki中的资料,链接如下

http://zh.wikipedia.org/wiki/观察者模式

其UML类图如下


1.定义

观察者模式(有时又被称为发布/订阅模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实作事件处理系统。

2.参与observe模式的实现

2.1 目标类别

该类别可以提供一个接口让观察者进行添附与解附作业

此类别内有个不公开的观察者串炼,并透过下列函式(方法)进行作业

  • 添附(Attach):新增观察者到串炼内,以追踪目标物件的变化。
  • 解附(Detach):将已经存在的观察者从串炼中移除。
  • 通知(Notify):利用观察者所提供的更新函式来通知此目标已经产生变化。

具体实现可参考如下:

 


2.2抽象观察者接口

抽象观察者类别是一个必须被实做的抽象类别。这个类别定义了所有观察者都拥有的更新用接口,此接口是用来接收目标类别所发出的更新通知。此类别含有以下函式

  • 更新(Update):会被实做的一个抽象(虚拟)函式。

实现可参考如下

 

 

3总结

android开发中很多地用到了观察者模式,这个模式很好地帮助我们去更好的架构程序!例如Android中的message程序。

 

posted @ 2011-08-14 21:37  supertang  阅读(281)  评论(0)    收藏  举报