面向对象设计与事件
来源:互联网 发布:usb转网络接口驱动 编辑:程序博客网 时间:2024/04/29 13:11
int main(void)
{
printf("Hello, world!\n");
return 0;
}
后来渐渐明白了,作为彻底实践面向对象设计的编程语言,Java的核心概念是对象,代码的组织单元也是对应的类。在C这样的过程式语言里,代码的基本单元是过程(函数)。C++虽然引入了面向对象的设计,仍然允许以过程的方式组织代码。代码单元的差别意味着在C等过程式语言里,一般的语句(除了声明变量和初始化等)都要写在某个函数里;而在Java里,一般的语句不仅要写在某个函数里,而且每个函数都要位于某个类里(即作为类的方法),并且除了特殊情况使用静态方法,普通的方法都是类被创建的实例上调用的。
事件
面向对象的设计给编程带来很大的便利和好处,在贯彻这种原则的语言中把类作为代码单元似乎也是自然的事情。但是实践中,剥夺了过程的独立生存权有时又会让代码失去过去的灵活和便捷。对事件的编程就是这样的场合。
事件是编程中广泛应用的概念和模式。单击窗体上的某个按钮触发一段代码就是一个简单而典型的例子。从编程的角度说,事件涉及到这样几个范畴:发布者(publisher)、收听者(listener)、事件参数(event argument)和处理程序(event handler)。发布者声明某个名称的事件,收听者登记响应程序;发布者触发事件,将事件的各种信息作为参数传递给处理程序,并执行。发布者、收听者和事件参数都可以对象的形式建模,唯独事件处理程序最直接和自然的形式就是一个函数。在C里,处理程序是一个回调函数;在JavaScript这类函数式语言里,处理程序就是简单的一个函数对象;在汲取了Java在经验和教训而设计的C#里,处理程序仍然是一个函数,只不过以代理包装。但是在一切都是对象的Java里,处理程序无法单独被传递,而是被包装在类——收听者——中,登记到发布者里。
Java里的事件编程
Java的思路是这样的,发布者命名一个事件,包含添加和删除事件处理程序的方法,其参数是某个EventListener的子接口MyEventListener,规定了处理程序的签名,如public void myEventOccurred(Object sender, EventArgs ea);收听者执行该接口,包含处理程序,藉addEventListener之类的方法登记到发布者里;事件触发时,发布者依据该事件对应的收听者的列表,将事件参数传递给收听者实现接口的方法,并运行。
- 面向对象设计与事件
- 面向对象设计与事件
- 面向对象分析与设计
- 面向对象分析与设计
- 面向对象分析与设计
- 面向对象设计与分析
- 继承与面向对象设计
- 设计模式与面向对象
- 面向对象分析与设计
- 面向对象与设计模式
- 面向对象系统分析与设计
- 继承与面向对象设计
- 面向对象与面向过程设计思想
- 论面向事件设计(EOD)和面向对象设计(OOD)
- 论面向事件设计(EOD)和面向对象设计(OOD)
- 论面向事件设计(EOD)和面向对象设计(OOD)
- 论面向事件设计(EOD)和面向对象设计(OOD)
- 面向对象设计与面向过程设计的不同
- 数列问题
- bash 小技巧
- 计算机是如何启动的?
- Looper.prepare()
- cocos2dx之CCSpriteFrameCache
- 面向对象设计与事件
- hibernate 中 inverse 的作用
- java简易记事本
- onInterceptTouchEvent和onTouchEvent使用心得
- UVA11402--Ahoy, Pirates!--线段树
- Linux系统性能检测
- 当微信遇上众筹——颠覆性创业背后的思考
- 交叉编译live555MediaServer流媒体服务器RTP/RTCP, RTSP, SIP 【转】
- CentOS 编译hadoop 1.0.4