试题五(共25分)阅读以下关于Web应用系统开发的问题,在答题纸上回答问题1至问题3。A公司承担了某企业应用系统的开发任务,用户要求系统最终应发布到Web上供企业员工及企业客户使用。项目组在进行方案论证时,首先肯定了该系统需使用B/S结构,但在系统应采用的底层平台上产生了分歧,一方认为应采用微软.NET平台,一方认为应采用Java企业版平台。经过认真讨论,结合两种平台的特点及项目的实际需求,项目组最终决定采用Java企业版平台作为系统开发运行的基础平台。
[问题2](8分)MVC(Model View Controller)模式是Web应用系统开发中常用的一种软件架构模式。请分别针对基于EJB的重量级框架和基于Struts等的轻量级框架,说明MVC模式中的各组件应采用何种构件实现。项目组在进行需求调研时,发现用户界面部分的变动可能会比较频繁,因此需要降低系统界面与业务逻辑之间的稳合度。MVP(Model View Presenter)模式是由MVC模式派生出的一种设计模式,其主要目的是降低MVC模式中模型(Model)与视图(View)的锅合度,请用300字以内文字,从组件耦合度、组件分工及对开发工程化支持等三方面说明MVP模式与MVC模式的主要区别。
参考答案:在基于EJB的重量级框架中,实现的构件分别为: ·模型(Model):由EJB构件实现。 ·视图(View):由JSP构件实现。 ·控制器(Controller):由Servlet构件实现。 在基于Struts等的轻量级框架中,实现的构件分别为: ·模型(Model):由Java Bean 构件实现。 ·视图(View):由JSP构件实现。 ·控制器(Contro11er):由Servlet构件实现。 MVP模式与MVC模式的主要区别为: (1)在组件辊合度方面:在MVP模式中,视图并不直接使用模型,它们之间的通信通过Presenter进行,从而实现了视图与模型的分离;而在MVC模式中,视图直接与模型交互。 (2)在组件分工方面:在MVP模式中,视图需要处理鼠标及键盘等触发的界面事件:而在MVC模式中,这通常是由控制器完成的工作。在MVP模式中,系统核心业务逻辑组织集中在Presenter中;而在MVC模式中,相应的控制器通常只完成事件的分发。 (3)在开发工程化支持方面:MVP模式可更好地支持单元测试;而在MVC模式中,由于模型与视图绑定,因此难以实施相应的单元测试。在MVP模式中,Presenter基于约定接口与视图和模型交互,可更好地支持组件的重用。
解析:本题主要考查MVC和MVP模式的区别。MVC模式是Web应用系统开发中常用的一种软件架构模式,包括基于EJB的重量级框架和基于Struts等的轻量级框架等。MVP模式与MVC模式的主要区别为: (1)在组件耦合度方面:在MVP模式中,视图并不直接使用模型,它们之间的通信通过Presenter进行,从而实现了视图与模型的分离;而在MVC模式中,视图直接与模型交互。 (2)在组件分工方面:在MVP模式中,视图需要处理鼠标及键盘等触发的界面事件;而在MVC模式中这通常是由控制器完成的工作。在MVP模式中,系统核心业务逻辑组织集中在Presenter中;而在MVC模式中,相应的控制器通常只完成事件的分发。 (3)在开发工程化支持方面:MVP模式可更好地支持单元测试;而在MVC模式中,由于模型与视图绑定,因此难以实施相应的单元测试。在MVP模式中,Presenter基于约定接口与视图和模型交互,可更好地支持组件的重用。