TypedMessage 模式 与 java Swing 事件驱动模型
来源:互联网 发布:淘宝店铺装修图 编辑:程序博客网 时间:2024/06/01 09:33
意图 :将信息封装在一个对象中,从而使信息的传递能够以一种类型安全的方式来进行。客户可以对对象进行扩展,以便向对象中添加信息,同时无需牺牲类型的安全性
适用性 一下条件全部成立的时候使用本模式
1.一些类的对象可能希望收到来自其他对象的信息
2.信息的结构和复杂度是任意的,而且可能会随着软件的逐步发展而发生变化
3.信息的传递应该是静态类型安全的
类图
其实这个模式和 观察者模式有着很大的相似之处,它本身就是 观察者模式的一个拓展, 接收者在事件发生处注册监听器,当事件发生的时候通知所有监听该对象的接收者。
事件作为最重要的信息被封装起来交给Receiver 处理。 它提供了编译时的类型安全性。
我们设想一下了另外一个设计,我们定义一个注册表专门为了注册事件与接收者,此时我们向 注册表内注册Message ,也就是 MessageA 和MessageB父类型的,在通知接收器处理的时候 就必然会引起 instanceof 关键字的使用,而且在编译时刻不会接受检查。
反观我们上面的设计,时间类型是在编译时刻就确定的,所以无需强制向下转型。
下面我们来看一下 java Swing的事件驱动模型
谈到事件驱动模拟模型。 首先就是 事件源 监听器 和 处理器。 java swing中的实现非常是上面模式的良好写照。
首先不同的组件可以发生不同的事件,比如鼠标事件 键盘事件。 我们抽象出 ,鼠标 ,键盘,窗口 等事件,这些事件都可在不同的组件上发生。
我们在同一组件上分别注册不同的事件类型,当事件发生的时候接收者接收到提示,并直接获得准确的事件类型信息,并进行处理。这保证了编译时刻的安全性。
我们上面说的 JButton JText 就相当于类图中的Sender , 但是Message可以有不同的类型, Sender中 保存各种不同事件的组册列表 ,当事件发生的时候 向所有对该事件感兴趣的接收者发送通知。接受者可以获得确定类型的事件信息,并对事件进行处理。
- TypedMessage 模式 与 java Swing 事件驱动模型
- Java Swing,模拟事件驱动
- java 事件驱动模型
- Java Swing事件驱动实例详解
- java界面编程(4) ------ Swing事件模型
- Java事件驱动模式
- JAVA事件驱动模式
- GUI界面,Swing、JTextPane面板、事件驱动模型(监听器)
- Java观察者模式与事件驱动模式实例比较
- Swing 事件模型
- 事件驱动模型和观察者模式
- java swing基础与事件处理
- Java事件驱动模式,Spring事件
- 观察者模式实现事件驱动模型(非GUI事件)
- Java事件驱动模型学习(JList)
- Java之事件驱动模型实例详解
- Swing的事件驱动机制
- java swing 单击事件mouseClicked与一般事件actionPerformed区别
- How to write comment in PowerShell Script
- 搜索技术上的李彦宏
- POJ 3734 Blocks 生成函数及矩阵的解法
- ANSYS中NUMMRG命令的小技巧
- poj 2033 DP
- TypedMessage 模式 与 java Swing 事件驱动模型
- 新手指针犯错
- 最长公共子串,出去重复子串
- Qt调用OpenCV实现录制视频文件中的几个问题
- java中的hashCode()和equals()的关系
- LOGFONT类型与D3DXFONT_DESC类型
- windows和linux双系统调整分区大小
- android-setVisibility
- 线性判别函数