目录
[1、Observer 模式](#1、Observer 模式)
[2、范例: Android + Observer模式](#2、范例: Android + Observer模式)
1、Observer 模式
- 定义对象间的1:N依赖关系,以便当一个主体对象(如A)的状态发生改变时,所有依赖于它的众多对象(如B, C, D ...)都得到通知,然后可向主体对象(A)取得最新状态内容。
- 如果Observer是个纯粹抽象类别(Pure Abstract Class),它扮演接口角色,就相当于Java语言的interface机制。
- 虽然父类别Observer已经变为IObserver接口了,其卡榫函数还是存在那里,只是形式有些变化而已。
2、范例: Android + Observer模式
- Android的View体系,其对象(又称为控件)会呈现于UI画面上。
- 当用户按下该控件,引发控件的状态改变了,就会透过onClickListener接口来通知所有的Listener对象。
java
// myActivity.java
// ........
public class myActivity extends Activity implements onClickListener {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
Button btn = new Button(this);
btn.setText("OK");
btn.setBackgroundResource(R.drawable.heart);
btn.setOnClickListener(clickListener);
setContentView(btn);
}
@Override
public void onClick(View v) {
String name = ((Button)v).getText().toString();
setTitle( name + " button clicked");
}
}