设计模式总结之观察者模式
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: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; } }
相关文章推荐
- Java IO流
- 看看Google用户体验十大设计原则
- 用Android Studio编写java程序
- 二叉树建立、前序、中序、后序、树深度求解
- 详解KVO,KVC
- mysql删除数据不能带表名
- 最速曲线
- oracle赋权
- 如何在两台电脑之间共享文件
- [bzoj4552][TJOI&HEOI2016]排序
- python正则表达式
- 百度之星2015资格赛 大搬家
- Uva 11134 传说中的车 贪心的思维
- poj1904(强连通分量,缩点)
- C++作业5
- HDU1086You can Solve a Geometry Problem too(判断线段相交)
- java文件上传和下载
- linux下终端,vim显示中文为乱码
- Windows使用免费版Kiwisyslog搭建日志服务器
- 内存的动态开辟