1、Connector)模块A模块B模块C模块D编译后以整体形式发布编译后以整体形式发布给用户给用户版本升级时,用户需要版本升级时,用户需要重新安装新版本,完整重新安装新版本,完整取代原有版本取代原有版本例如:模块例如:模块B变动变动即使很好地采用了结构化方法,也难以解决版即使很好地采用了结构化方法,也难以解决版本升级等问题;开发周期长,维护费用高,扩本升级等问题;开发周期长,维护费用高,扩展功能风险大等等。展功能风险大等等。模块A模块B模块C模块D四个模块分别编译,相四个模块分别编译,相对独立地交给用户;模对独立地交给用户;模块之间的调用仍然存在;块之间的调用仍然存在;版本更新时,用户只需版本更
2、新时,用户只需获得某一新版本的模块。获得某一新版本的模块。模块B同一计算机系统内,有两个系统同一计算机系统内,有两个系统S1和和S2都使用模都使用模块块B,版本更新后,版本更新后,S1可使用可使用B提供的功能,提供的功能,s2可以继续使用可以继续使用B原有的功能。原有的功能。可行性的关键是:能够动态组装可行性的关键是:能够动态组装模块A模块B模块C模块DWebWebWebWeb组成一个系统的不同模块,可以在网络的不同计算机系组成一个系统的不同模块,可以在网络的不同计算机系统系统中,对系统的用户来说,他不需要关心组成该系统系统中,对系统的用户来说,他不需要关心组成该系统的各模块的位置,对于任何一
3、个模块来说,也不需要统的各模块的位置,对于任何一个模块来说,也不需要知道它所知道它所“调用调用”的模块位置,被调用模块也不需要知的模块位置,被调用模块也不需要知道调用者位置。调用了谁,被谁调用均不需要知道(位道调用者位置。调用了谁,被谁调用均不需要知道(位置透明)置透明)可行性的关键是:可行性的关键是:“资源资源”的存在形式、访问方法的存在形式、访问方法ClinetObjectServerObjectrequestresponseClinet的实现紧紧依赖于的实现紧紧依赖于Server的实现的实现使用与实现的分离体现在一个类的实现中,使用与实现的分离体现在一个类的实现中,当然,也可以进一步体现
4、在一个包(子系统)当然,也可以进一步体现在一个包(子系统)中。中。ClinetObjectCommonObjectrequestresponseServerObjectreqquestresponse所有对象均把请求提交给所有对象均把请求提交给Common对象,对象,Common对对象负责查找能完成请求的象负责查找能完成请求的Server对象,并把请求转交给对象,并把请求转交给Server对象,对象,Server对象完成后的结果通过对象完成后的结果通过Common对象转交给对象转交给Client对象。能实现请求的对象。能实现请求的Server可以有多可以有多个,个,Client对对Server的使用与的使用与Server的实现分离。的实现分离。关键:关键:CommonObject的设计及利用的设计及利用精品课件精品课件!精品课件精品课件!