您的位置:首页 > 其它

设计模式总结之观察者模式

2016-05-10 20:21 274 查看
观察者模式的角色有两个,一个是观察者,另一个是被观察者。一般情况下当观察者发生一定状态,则由被观察者响应出来。其uml图如下所示: 


其实我们平时多用的监听器,也是一种变种的观察者模式,其实在我看来,则是一种更加贴切,简单,易懂的观察者模式。下面我用代码来解释一下。package com.modedesign.observer;
/**
* @author ctt:
* @version 创建时间:2016年5月10日 下午8:10:45
* 类说明
*/
public class Test {
public static void main(String[] args) {
View v = new View();
v.setClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
System.out.println("click");
}
});
v.onTouch();
}
}

package com.modedesign.observer;
/**
* @author ctt:
* @version 创建时间:2016年5月10日 下午8:09:24
* 类说明
*/
public interface OnClickListener {
public void onClick(View v);
}

package com.modedesign.observer;
/**
* @author ctt:
* @version 创建时间:2016年5月10日 下午8:09:58
* 类说明
*/
public class View {
private OnClickListener clickListener;
private int id;
public OnClickListener getClickListener() {
return clickListener;
}
public void setClickListener(OnClickListener clickListener) {
this.clickListener = clickListener;
}
public void onTouch(){
//判断按下和抬起的位置
clickListener.onClick(this);
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: