健康体检数据管理系统设计与实现外文翻译资料

 2022-12-19 17:16:23

英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料


第五章

使用模式开发

使用Java技术的一个关键优势是它是面向对象(OO)语言。这使你可以编写可重用且高度可伸缩的代码。随着你越来越习惯OO开发,你可能会认识到在开发特定类的解决方案时遵循的一些最佳实践。例如,你可能会发现,对你正在处理的每个数据输入应用程序,你倾向于以类似的方式对数据验证例程进行编码。如果你要将此最佳实践正式化并抽象出一些实现细节,那么可以想象其他人可以将其用作路线图,通过实施已经过验证的数据验证技术来快速启动自己的开发工作,这消除了大量的设计工作以及大量的测试迭代。

已发布的最佳实践已被称为设计模式,他们起源于OO世界,并以各种形式发布,特别是它们在C 和Java中的实现,以及一些一般性研究。特别是,Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides(Addison-Wesley,1995)的“设计模式”一书已经成为OO设计模式的权威指南。最近,设计模式的概念影响了J2EE开发人员社区,促使Sun发布了J2EE模式目录(http://developer.java.sun.com/developer/technicalArticles/J2EE/patterns/)。这些模式解决了典型的设计问题以及如何应用各种J2EE技术来解决此类问题。

本章是处理企业设计模式的第一章,我将讨论使用模式的优点,查看J2EE模式目录,突出显示与表示层相关的模式(因此也是本书的主题),最后讨论大多数J2EE模式所基于的模式:模型-视图-控制器(MVC)。

为何使用模式?

我将通过回答这个问题开始模式覆盖:为什么要设计模式以帮助你自己的开发工作?这个问题的答案很简单。设计模式是经过验证的技术,可以重复使用并应用于许多类似的问题。在讨论应用程序设计时,它们还为你提供了一个通用的词汇表。

他们是经过验证的技术

在设计应用程序时,需要解决许多问题。在大多数情况下,这些问题并不是你正在设计的特定应用程序所特有的。如果你要设计并实现问题的自定义解决方案,那么这段代码将需要经历几次迭代的测试和后续编码,直到它完全符合你的特定应用程序所需。如果你采用上一个场景并使用设计模式而不是自定义解决方案,那么你将大大减少开发和测试时间。设计模式是已经经历了许多次测试和开发,以产生行业范围的最佳实践。显然,你仍然需要进行一些自定义开发来实现模式,但现在你只需要测试特定实现的代码而不是整个功能。

他们是可以重复使用的

根据OO设计的精神,企业设计模式旨在跨项目重用。每种模式都为特定类型的问题提供了经过验证的解决方案。这些问题往往存在于许多不同的应用中。不是每次都重新发明轮子,而是应用需要最少修改的设计模式更有意义。

这是一个常用词汇

在谈到应用程序设计时,有一个共同的词汇表可以将你的选项传达给开发团队的其他成员。例如,常见的OO设计模式是工厂模式。当需要在运行时实例化对象时,此模式很有用,但在编译时不知道该对象的类。因此,在讨论设计选项时,你可能会说“嗯,如果我们在报告模块中实现工厂模式,我们可以在未来添加新报告而无需修改应用程序框架。”如果团队中的每个人都了解工厂模式,他们都可以根据给定的陈述设想解决方案。

介绍J2EE模式目录

Sun的架构师编译了一系列设计模式,并将它们作为J2EE模式目录发布为Java开发人员连接网站(http://developer.java.sun.com)。这些模式通过J2EE技术的应用解决了常见的应用程序问题。模式目录将各种模式分组为以下层:

(1)表示层:向用户呈现应用程序数据和用户界面元素所需的任何内容都在应用程序的表示层内,使用的关键技术是JavaServer Pages(JSP)和Java Servlets。

(2)业务层:业务层是进行所有业务处理的地方,用于此层的主要J2EE技术是Enterprise JavaBeans(EJB)。

(3)继承层:集成层提供与资源层的连接。资源层包括消息队列,数据库和遗留系统等内容。集成层中使用的J2EE技术是Java消息服务(JMS),Java数据库连接(JDBC)和Java连接器体系结构(JCA)。

因为这是一本JSP书,所以我将主要介绍那些处理表示层的模式。我不会试图详细描述每种模式,模式目录做得很好。本书的目标是提供最佳实践和示例。为此,我将提供足够的定义,使你能够使用JSP页面和Java servlet将这些模式应用于常见的开发任务。

看演示设计模式

我将在本书中讨论的模式通常称为装饰过滤器,前端控制器,调度器视图和视图助手模式。J2EE目录中还有一些我不会讨论的表示模式。这四种模式足以说明我将介绍的示例和最佳实践。

这些模式各自覆盖表示逻辑的不同层。当请求进入时,它可以在实际处理请求(装饰过滤器模式)之前通过过滤器,然后它可以进入要处理的集中式servlet(前端控制器模式),一旦处理完毕,servlet就可以将结果分派到特定的JSP页面(Dispatch View Pattern)。最后,JSP页面可以使用自定义标记或JavaBeans来将数据包含在HTML输出中(View Helper Pattern)。图5-1说明了这些模式之间的关系。

图5-1 演示模式

这是我将要讨论的每种模式的预览:

(1)装饰过滤器:当模式传入和传出Web容器时,此模式对请求或响应对象应用一种过滤器。你可以将过滤器用作记录事务,验证用户,甚至格式化数据的常用位置。

(2)前控制器模式:Front Controller模式建立在MVC模式的概念之上(参见下一节)。这种模式建议使用单个servlet来处理每个请求,而不是在每个JSP页面中嵌入控制器代码。

(3)调度程序视图:在控制器内部,存在一段代码,用于确定处理的请求应显示的位置。换句话说,它应用某种策略来确定用于显示当前数据的视图或JSP页面。

(4)查看助手:一旦选择了特定视图,JSP就会使用几个“帮助器”来使数据适应最终输出的内容。这些帮助程序由自定义标记或JavaBeans组成。

理解模型-视图-控制器(MVC)

J2EE目录中的表示模式都基于MVC体系结构。MVC应用于软件开发项目,便于将应用程序数据与数据表示分开。这种分离使得接口或视图能够采用许多不同的形式,而对应用程序代码的修改很少。例如,使用MVC模式,用户界面可以呈现为HTML页面(用于Web浏览器)和WML页面(用于移动设备),具体取决于请求页面的设备。控制器将识别请求的来源并将应用程序数据应用于适当的视图(参见图5-2)。

图5-2 MVC架构

将表示逻辑与数据分离并使用控制器进行管理的想法源于图形用户界面(GUI)开发。例如,使用由许多不同用户控件组成的用户界面。这些控件包含数据,格式化说明以及激活控件时触发事件的代码。这使得用户界面平台特定并且与应用程序代码本身相结合。通过应用MVC模式并分离每一个组件中,使用户界面变得轻量级,可插拔并且可跨平台传输。Java Swing API最好地说明了这一点。

除了客户端/服务器GUI之外,你还可以将MVC模式应用于软件开发的其他领域。Web开发已从通过明确地把表示代码与应用程序数据两者联系在一起的控制器代码分离的想法中受益。例如,让我们看一个显示目录页面的简单Web应用程序。通常,这将包括搜索页面,结果页面和项目详细信息页面,每个页面都有责任验证用户身份,检索用户首选项,检索所请求的数据以及管理页面导航(参见图5-3)。

图5-3简单的目录应用程序(没有MVC)

查看此应用程序,很容易看到正在使用大量冗余代码来显示每个页面。这不仅会引入错误的可能性,而且还会通过在表示代码中包含的许多非表示函数将应用程序与表示联系起来。将MVC模式应用于此应用程序时,常用功能将移至服务器上的控制器。现在,演示代码只负责以适合特定设备(通常是Web浏览器)的格式呈现应用程序数据。有关此应用程序的MVC方法,请参见图5-4。

图5-4 简单的目录应用程序(使用MVC)

看到MVC在行动中

为了说明MVC模式,你将构建一个简单的Web应用程序来收集数据并将其存储在数据库中,你将收集的数据是健康信息,他们将会存储在我们的报价数据库的客户表中。除了收集数据之外,应用程序还要求用户在访问任何页面之前登录系统。

这个例子很简单,但它说明了使用MVC架构的一些好处。你将看到如何通过为用户提供单个访问点来集中应用程序安全性。你还将使用内置于应用程序服务器中的连接池机制来标准化和共享数据库连接。在接下来的几章中,我将使用此示例(以及其他例子)来介绍新模式。这个例子在考虑到这一点上是基本的。你将在以后添加字段验证和改进的错误处理等功能。

应用程序从登录页面开始,然后移动到将充当控制器的主servlet(参见图5-5),servlet将根据登录过程的成功与否来确定是否继续下一页,一旦用户登录,他们将进入调查页面,在那里他们将输入他们的信息并提交,servlet将再一次询问请求并将用户移动到下一页。如果成功记录了数据,则用户将进入确认页面。

图5-5简单的调查应用

将servlet用作于单个入口点的另一个好处是,它使你可以从外部世界隐藏JSP页面。这有助于通过不允许直接访问你的应用程序来保护系统。用户可以直接访问的唯一页面是登录页面。如果他们要键入另一个页面的名称,服务器将返回404错误(“未找到”)。你可以通过将JSP页面“隐藏”在 WEB-INF目录中来实现此目的。根据定义,此目录下的所有内容都无法通过用户直接访问。但是,充当我们的控制器的servlet可以访问此目录,因此可以将请求转发到驻留在那里的页面。

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[19941],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。