摘要…………………………………………………………………………………………………………2文献综述……………………………………………………………………………………………………3第一章前言………………………………………………………………………………………6第二章OOP的基本原则及发展方向第一节软件的可维护性与可复用性…………………………6第二节六条OOP设计原则………………………………………………………………7第三节AOP的兴起………………………………………………………………………8第三章J2EE系统的架构设计第一节J2EE中常用的概念………………………………………………………………10第二节MVC架构…………………………………………………………………………12第三节分布式架构………………………………………………………………………13第四章数据持久层的设计第一节业务对象的持久化………………………………………………………………14第二节数据访问对象设计模式…………………………………………………………15第三节ORM框架的原理和重要性……………………………16第四节数据持久层………………………………………………………………………19第五节数据库连接池、缓存及系统性能的提升……………21第六节Java反射技术…………………………………………………………………22第五章J2EE架构中各层的数据表示方法第一节MVC三层体系结构中的数据表示要求………………23第二节J2EE系统中各层数据表示的设计…………………24第六章设计模式的概念与几种常用的J2EE设计模式第一节设计模式的概念…………………………………………………………………25第二节工厂创建模式与单例模式……………………………27第三节使用工厂模式实现DAO…………………………………………………………31总结……………………………………………………………………………………………………………33结束语…………………………………………………………………………………………………………34多层J2EE系统的架构与模式设计【摘要】J2EE提供了一套完整的基于标准化模块的服务组件,它能自动的处理大多数应用程序的细节,而不需要复杂的编程,因此简化了复杂的企业级应用程序的开发。本文首先考察企业级应用的一般概念和需求,然后简要阐述面向对象程序设计的基本原则,并结合软件工程的思想来讨论多层的J2EE应用架构,分析它们满足企业级应用的方式,,再通过讲述常用的几种Java设计模式和Java反射技术来说明如何实现这些应用架构。【关键词】模型-视图-控制,对象关系映射,业务对象,面向方面编程,数据访问对象,设计模式TheFrameworkofMultitierJ2EESystemandDesignPattern【abstracts】TheJ2EEsimplifiesenterpriseapplicationsbybasingthemonstandardized,modularcomponents,byprovidingacompletesetofservicestothosecomponents,andbyhandlingmanydetailsofapplicationbehaviorautomatically,withoutcomplexprogramming.Thispaperreviewsthegeneralconceptandtherequirementofenterpriseapplication,elaboratesthegeneralprincipleofobjectorientedprogrammingbriefly.WecombinetheideaofSoftware-EngineeringtodiscusstheframeworkofmultitierJ2EE,andmeanwhileanalyzehowtheycansatisfythedemandofenterpriseapplications.Atlast,thispapershowshowtoimplementthoseframeworksofmultitierJ2EEbyintroducingsomekindsofJavadesignpatternandtheJavareflectiontechnology.【keywords】MVC,ORM,BO,AOP,DAO,Designpattern.【文献综述】计算机软件是人类心灵和智慧在虚拟空间中的投射。软件的性能是人类能力的扩展,它的活动就是人类心智活动的反映。软件直接表达出设计者对目标的理解,对用户的期待,以及对自己的定位。人们在自己的环境中不断发现问题和寻找问题的解决方案的时候,发现有一些问题及其解决方案不断变换面孔重复出现,但在这些不同的面孔后面有着共同的本质,这些共同的本质就是模式。著名建筑工程学家ChristopherAlexander所著《建筑的永恒之道》(TheTimelessWayofBuilding)和他发展出来的模式理论涵盖科学,心理,艺术和哲学,不仅适用于建筑工程学,而且适用于软件工程学以及任何其他的工程学。今天的企业软件可以由多个不同的部分组成,但企业已经认识到,只要符合企业利益,很有必要将各个分散的系统进行良好的集成,以尽可能相互支持,总的来说企业希望对集成后的企业级软件的具体应用如下:1.通过集成企业的客户支持和本身的产品知识,企业可以利用WEB为它的客户提供更新更好的服务。2.将企业售货机联网,企业可以获得更多的在线客户。3.将销售管理系统和存货系统相链接,企业可以设计特定的低成本的Web销售渠道,这样可以进入未曾涉足的市场领域。4.如果给企业员工所使用的服务提供一个前端,例如内部办公用品订货系统,将它与会计系统连接在一起,企业就可以降低总体开支并提高员工的工作效率。5.在线使用企业HR系统,可以让员工根据他们自己的健康状况进行更多的选择,这样可以降低企业整体的管理费用。6.使企业的人力资源密集型操作自动化,并使它可用于任何时间任何地点,在降低整体运营费用的同时,企业还可以给它的客户提供更好的服务。按企业对企业级软件的要求,一个企业级应用系统(J2EE)肯定会是一个服务于商业目的,处理企业业务信息,数据的软件系统,因此大概可以总结出以下五方面的特征:有复杂的业务逻辑,有大量持久化数据,与多种外部系统相关联有较高的性能要求,在运行时需要随时监控,管理,应该能够实时记录,观察系统运行情况。修改系统配置。以前的企业应用,集中式的单层(singletier)应用程序占有主导地位。在软件中,层是一个抽象概念,它的主要目的是通过将软件分解成独立的逻辑层,帮助我们理解与特定应用程序相关联的体系结构。从应用程序的角度看,单层应用程序的最大问题在于,它将表示,业务逻辑和数据都混合在一起。客户机-服务器方法通过将表示和一些业务逻辑分别移至单独的层中,缓解了上述主要问题的影响,不过从应用程序的角度来看,业务逻辑和表示依然很混乱。N层(n-tier)方法可以取得更好的整体平衡,它将表示逻辑与业务逻辑从底层数据中分离开来,以满足特定的需求。单单采用面向对象开发技术后只可以实现部分代码重用,原因之一是对象都细粒度化,正是因为细粒度对象间更紧密的耦合状态,从而便利大范围的重用变得很困难。分层化的组件设计就是为了解决这个问题。与对象不同,软件组件是在更高的抽象级中设计的,可以提供一个完整的功能或服务。组件间的耦合更为松散。利用组件的接口,可以将组件迅速组合在一起以构建更大的企业级应用程序。近年来,人们已开发出了各种不同的帮助理解的组件模型,例如,Microsoft的ActiveX,后来的COM编程接口,和现在兴起的.netFrameWork,SUNMicrosystems的applet和JavaBeans,EnterpriseJavaBeans(EJB),其中EJB是J2EE的一部分。SunMicrosystems把Java2平台组织成三个特定的,引人瞩目的版本:微型版(J2ME),标准版(J2SE)和企业版(J2EE)。在这些产品中,J2EE与开发企业级Java应用联系最紧密。J2EE为开发复杂的,分布式企业级Java应用定义了一套体系结构。J2EE最初是由SunMicrosystems在1999年中期发布的,其正式发布则在1999年后期。J2EE仍然较新,其依次发布的版本间仍然存在着重大的改变,特别是在EJB方面。该平台是建立在Java“一次编写,随意运行”的理念上的,它通过一组技术和一套API实现。N层体系结构的概念已经出现一段较长的时间了,并已成功地应用于构建企业级应用程序。Sun在Java中采用n层开发模型,并引入特定功能,允许更容易地开发服务器端可伸缩的、基于Web的企业级应用程序,从而在这个领域提供了Java自身所缺少的关键成分。为什么要使用J2EE呢?它不是太新并且功能未经证实,它能提供什么?难道只是一种一时的技术狂热吗?在J2EE出现之前,JDBCAPI早已建立好了,可选用的轻量级的,可维护的servlet技术也已出现。除了这些,J2EE还提供了一些有前景的优点,它让开发人员关注开发业务逻辑,不用预先详细了解执行环境而把精力放到实现系统上,以及创建在硬件平台和操作系统(OS)间更容易衔接的系统。企业级软件开发是一项复杂的任务,需要具备许多不同领域的广泛知识。例如,一项典型的企业级应用程序开发工作可能要求你熟悉进程间的通信问题、安全问题、数据库特定访问查询等。J2EE企业级开发平台鼓励在系统开发、部署和执行之间作一个清晰的划分。此开发人员可以将部署细节留给部署人员处理,如实际的数据库名称和存放位置、主机持有配置属性等。J2EE让系统可通过Java和J2EE而不是底层系统API被访问,从而支持硬件和OS无关性。由于这种原因,遵循J2EE体系结构技术规范的企业级系统可以非常容易地在硬件系统和不同的OS之间衔接。在企业级开发领域,虽然面对Microsoft.net强大的挑战,但是J2EE由于上述优点,并且相对说来比较成熟,已经占据了企业级开发的大部分市场,并随着技术的进步、新的J2EE版本的发布、开源社区庞大自由开发者的支持,将会使企业级开发变得更高效,更快速,更高质量,更易于维护。第一章前言J2EE核心技术有十三种,它们和J2EEAPI覆盖了企业级Java开发的广泛领域。在企业级Java开发工作中要用到的J2EE的方方面面知识是不太可能的。比较常用的有容器,servlet,JSP,EJB等。容器是一种运行在服务器上的软件实体,用于管理特定类型的组件。它为开发J2EE组件提供了执行环境。通过这些容器,J2EE体系结构就能在开发和部署间提供无关性,并在不同类型的中间层服务器间提供可移植性。servlet是一些可生成动态内容的Web组件。它们是当今在组件之一。它们提供了一种有效的机制,用于基于服务器的业务逻辑和基于Web的客户端之间的交互,还可为通用的CGI脚本方法提供一种轻型且更易于管理的替代方法。JSP是另一种类型的J2EEWeb组件,它是从servlet技术发展而来的。事实上,一部分JSP编译进servlet并在servlet容器中执行。EJB技术规范是J2EE平台的最核心的部分。它为构建可伸缩、分布式、基于服务器的企业级Java应用组件提供了一种综合性的组件模型。文章将结合这几种主要的组件技术来讲述构建J2EE系统的一般过程。第二章OOP的基本原则及发展方向第一节软件的可维护性与可复用性通常认为,一个易于维护的系统,就是复用率较高的系统;而一个复用较好的系统,就是一个易于维护的系统。也就是说一个系统的设计目标应该具有如下性质:可扩展性,灵活性,可插入性。常听人说一个项目开发结束只完了这个项目的三分之一,可见系统的可维护的重要性。导致一个系统可维护性降低主要有四个原因:过于僵硬,过于脆弱,复用率低,黏度过高。通过良好的软件复用,可以