WEB开发网
开发学院手机开发Android 开发 观察者(Observer)模式在Android应用 阅读

观察者(Observer)模式在Android应用

 2010-10-14 06:20:00 来源:本站整理   
核心提示:观察者模式在Android中有着广泛的应用,尤其是在Listener中应用广泛,观察者(Observer)模式在Android应用,本文以Button为例来介绍一下观察者模式,首先回顾一下观察者模式,View.OnClickListener对象就是观察者,当状态更新(Button被按下去),观察者模式又叫做发布-订阅(

观察者模式在Android中有着广泛的应用,尤其是在Listener中应用广泛。本文以Button为例来介绍一下观察者模式。

首先回顾一下观察者模式。

观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。

观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。其结构如下:


可以看出观察者向Subject注册Attach和注销Detach,当Subject状态发生变化时,调用观察者的方法update,要求观察者更新状态。

Android系统中,怎样注册一个Button的listoner呢?一般代码如下:

public class MyActivity extends Activity {

protected void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.content_layout_id);

final Button button = (Button) findViewById(R.id.button_id);

button.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

// Perform action on click

}

});

}

}

我们可以看到创建一个View.OnClickListener对象,调用Button对象的 setOnClickListener方法把该Listener对象注册给Button,当Button被点击的时候,则触发 View.OnClickListener对象的onClick方法。我们可以把这个模式理解成一个观察者模式,Button对象就是 subject,View.OnClickListener对象就是观察者,当状态更新(Button被按下去),则调用观察者(View.OnClickListener对象)的onClick方法。

Tags:观察者 Observer 模式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接