监听器设计模式(观察者模式、订阅发布模式)
来源:互联网 发布:安卓相册软件 编辑:程序博客网 时间:2024/05/17 00:51
类的四大基本关系:
a.关联关系:如A类调用B类。
b.继承关系:如A类是B类的父类。
c.聚合关系:如装橘子的箱子,箱子是否存在与里面装没装橘子没有任何关系,也就是说橘子不会影响箱子的存在。
d.组合关系:如一个小组,小组是否存在与小组中是否有组员是息息相关的,如果没有组员,小组就不存在了。
监听器模式:事件源经过事件的封装传给监听器,当事件源触发事件后,监听器接收到事件对象可以回调事件的方法
观察者模式:观察者(Observer)相当于事件监听者,被观察者(Observable)相当于事件源和事件,执行逻辑时通知observer即可触发oberver的update,同时可传被观察者和参数
1、定义监听器
public interface Listener {public void action();}
public class ClickListener implements Listener {@Overridepublic void action() {System.out.println("ClickListener action!");}}
public class DoubleClickListener implements Listener {@Overridepublic void action() {System.out.println("DoubleClickListener action!");}}
2、定义事件
public interface Event {int getType();}
public class ClickEvent implements Event {@Overridepublic int getType() {return 1;}}
public class DoubleClickEvent implements Event {@Overridepublic int getType() {return 2;}}
3、定义绑定事件的对象
public class Client {Listener listener;Event event;public static void main(String[] args) {// 1、假定client是数据源Client client = new Client();// 2、给数据源绑定事件监听Listener listener = new DoubleClickListener();client.addListener(listener);// 3、触发“双击”事件DoubleClickEvent dce = new DoubleClickEvent();client.addEvent(dce);// 4、触发“单击”事件ClickEvent ce = new ClickEvent();client.addEvent(ce);}public void addListener(Listener listener) {this.listener = listener;}public void addEvent(Event event) {//首先必须要存在添加了监听,如果没有监听就没有任何动作if (this.listener != null) {this.event = event;int eventType = event.getType();switch (eventType) {case 1:if (this.listener.getClass() == ClickListener.class) {this.listener.action();} else {System.err.println("没有绑定单击事件");}break;case 2:if (this.listener.getClass() == DoubleClickListener.class) {this.listener.action();} else {System.err.println("没有绑定双击事件");}break;default:break;}}}}
- 监听器设计模式(观察者模式、订阅发布模式)
- Javascript设计模式-07-观察者模式(发布订阅模式)
- 设计模式二:观察者模式(发布订阅模式)
- java设计模式-观察者(发布-订阅)模式
- 设计模式(三)观察者模式Observer(发布订阅)
- 观察者模式(也就是发布订阅模式)
- 观察者模式(发布订阅模式)
- 发布订阅模式(观察者模式)
- 发布-订阅模式(观察者模式)
- 观察者模式(发布订阅模式)
- 观察者模式(发布订阅模式)
- 观察者模式--发布/订阅模式
- 十六 设计模式之观察者模式(发布订阅模式)
- 设计模式之观察者模式(发布-订阅模式)
- [设计模式] 观察者模式(发布-订阅/Publish-subscribe模式)
- 我理解的设计模式:观察者模式(订阅发布模式)
- java笔记--设计模式之观察者(订阅/发布)模式
- 浅析JavaScript设计模式——发布-订阅/观察者模式
- Extjs4中tab打开,关闭再打开不显示或显示重叠问题的解决方法
- 什么是表空间
- notepad++ 查找某个文件夹下面指定文件的字符串
- jquery ajax直接提交表单
- JNDI入门学习
- 监听器设计模式(观察者模式、订阅发布模式)
- Jboss无法通过IP地址访问,只能用localhost\127.0.0.1访问
- 怎样结合使用Fiddler2和Android模拟器来调试HTTP
- jsonp 跨域学习
- 责任链 模式
- win7笔记本如何设置共享网络供手机WIFI上网
- apache设置代理
- ser-u安装配置完之后无法使用flashFXP连接
- 同一个IP不同端口的JS跨域问题