当前位置: 技术问答>java相关
对面向对象系统驱动方式的一点思考
来源: 互联网 发布时间:2015-05-19
本文导语: 面向对象技术构建的系统是以消息驱动为驱动方式的. 消息包含两部分,一为通知,即指明哪些对象需要运动,但不去指明如何运动,是为"驱". 二为数据,包含方法名,参数等等,指明受体对象如何运动,是为"动". 但实际中,既...
面向对象技术构建的系统是以消息驱动为驱动方式的.
消息包含两部分,一为通知,即指明哪些对象需要运动,但不去指明如何运动,是为"驱".
二为数据,包含方法名,参数等等,指明受体对象如何运动,是为"动".
但实际中,既包含以消息为驱动方式的直接驱动,也包含受体对象仅接受通知,根据中间
数据决定如何运动的间接驱动.
两种驱动方式的区别在于
一.效率不同.直接驱动快,一般当时即响应,间接驱动较慢,一般是需要运动时才去根据
中间数据判断或者定时判断.
二.程序代码在主体对象和受体对象的分布及规模都有不同.直接驱动时通知代码集中在
主体对象,受体对象基本没有与消息处理相关的代码,只是被动的执行,程序较集中.间
接驱动时,双方通过数据来连接,主体对象程序较少,而且只修改数据,以其它对象无关,
受体对象包含判断中间数据的代码,程序较分散.
三.错误规模.直接驱动程序量大,所以错误较多.间接驱动程序分散,所以错误较少.
四.中间数据保留情况.直接驱动需要保留的数据较少,间接驱动需要保留的数据较多,
而且需要仔细分析,工作量大.
五.适用范围.直接驱动一般适用于一个主体对象影响多个受体对象,间接驱动正好相反.
交叉调用应尽量较少,最好能分拆成多个对象,形成一对多,多对一结构.(这一条需要
综合考虑)
在系统设计过程中,灵活的运用两种方式往往更方便理解。
小弟初学乍练,辞不达意,还请各位高手指点
消息包含两部分,一为通知,即指明哪些对象需要运动,但不去指明如何运动,是为"驱".
二为数据,包含方法名,参数等等,指明受体对象如何运动,是为"动".
但实际中,既包含以消息为驱动方式的直接驱动,也包含受体对象仅接受通知,根据中间
数据决定如何运动的间接驱动.
两种驱动方式的区别在于
一.效率不同.直接驱动快,一般当时即响应,间接驱动较慢,一般是需要运动时才去根据
中间数据判断或者定时判断.
二.程序代码在主体对象和受体对象的分布及规模都有不同.直接驱动时通知代码集中在
主体对象,受体对象基本没有与消息处理相关的代码,只是被动的执行,程序较集中.间
接驱动时,双方通过数据来连接,主体对象程序较少,而且只修改数据,以其它对象无关,
受体对象包含判断中间数据的代码,程序较分散.
三.错误规模.直接驱动程序量大,所以错误较多.间接驱动程序分散,所以错误较少.
四.中间数据保留情况.直接驱动需要保留的数据较少,间接驱动需要保留的数据较多,
而且需要仔细分析,工作量大.
五.适用范围.直接驱动一般适用于一个主体对象影响多个受体对象,间接驱动正好相反.
交叉调用应尽量较少,最好能分拆成多个对象,形成一对多,多对一结构.(这一条需要
综合考虑)
在系统设计过程中,灵活的运用两种方式往往更方便理解。
小弟初学乍练,辞不达意,还请各位高手指点
|
同意~
呵呵~
呵呵~