目录
1、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对象。
// 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");}
}