观察者(Observer)模式在Android应用
2010-10-14 06:20:00 来源:本站整理观察者模式在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方法。
更多精彩
赞助商链接