XXX公司J2EE框架培训讲义北京信城通数码科技有限公司BEIJINGITOWNETCYBERTECHNOLOGYLTD.政务事业部错误!未找到引用源。错误!未指定书签。信城通公司J2EE框架培训讲义修订历史记录日期版本说明作者2004-12-130.1起草信城通公司J2EE框架培训讲义i目录1构架设计相关知识.................................................................................................................11.1术语.........................................................................................................................................11.2OO设计原则...........................................................................................................................21.3J2EE框架概述........................................................................................................................31.4设计模式.................................................................................................................................41.5J2EE设计模式........................................................................................................................52信城通公司J2EE框架..........................................................................................................62.1框架图.....................................................................................................................................62.2框架核心类图.........................................................................................................................82.3框架包结构说明.....................................................................................................................92.4框架包源代码分析及应用举例..............................................................................................93JAVA编程常见问题及注意事项(讨论).........................................................................10信城通公司J2EE框架培训讲义共10页第1页1构架设计相关知识1.1术语网络文章引用(、)1、模块(module):一组完成指定功能的语句,包括:输入、输出、逻辑处理功能、内部信息、运行环境。2、组件(component):系统中相当重要的、几乎是独立的可替换部分,它在明确定义的构架环境中实现确切的功能。3、模式(pattern):指经过验证,至少适用于一种实用环境(更多时候是好几种环境)的解决方案模板(用于结构和行为)。存在各种范围和抽象程度的模式,例如,构架模式、分析模式、设计模式和代码模式或实施模式。模式将可以帮助我们抓住重点。模式是针对特定问题的解,因此,我们也可以针对需求的特点采用相应的模式来设计构架。4、构架模式(architecturalpattern):表示软件系统的基本结构组织方案。它提供了一组预定义的子系统、指定它们的职责,并且包括用于组织其间关系的规则和指导。5、层(layer):对模型中同一抽象层次上的包进行分组的一种特定方式。通过分层,从逻辑上将子系统划分成许多集合,而层间关系的形成要遵循一定的规则。通过分层,可以限制子系统间的依赖关系,使系统以更松散的方式耦合,从而更易于维护。(层是对构架的横向划分,分区是对构架的纵向划分)。系统分层的几种常用方法:1)常用三层服务:用户层、业务逻辑层、数据层;2)多层结构的技术组成模型:表现层、中间层、数据层;3)网络系统常用三层结构:核心层、汇聚层和接入层;4)RUP典型分层方法:应用层、专业业务层、中间件层、系统软件层;5)基于Java的B/S模式系统结构:浏览器端、服务器端、请求接收层、请求处理层;6)某六层结构:功能层(用户界面)、模块层、组装层(软件总线)、服务层(数据处理)、数据层、核心层。6、构架(architecture):构架是系统在其所处环境中的最高层次的概念,软件系统的构架是通过接口交互的重要信城通公司J2EE框架培训讲义共10页第2页构件(在特定时间点)的组织或结构,这些构件又由一些更小的构件和接口组成。构架的描述方式:“4+1”视图(用例视图、设计视图、实现视图、过程视图、配置视图)是一个被广为使用的构架描述的模型;RUP过程的构架描述模板在“4+1”视图的基础上增加了可选的数据视图(从永久性数据存储方面来对系统进行说明)。7、结构(structure):软件构架是多种结构的体现,结构是系统构架从不同角度观察所产生的视图。8、框架(framework):框架是构成一类特定软件可复用设计的一组相互协作的类。它规定了用户的应用的体系结构,定义了整体结构、类和对象的分割、各部分的主要责任、类和对象如何协作,以及控制流程。因而,框架更强调设计复用。从组成来讲,框架是抽象类和具体类的混合体,抽象类存在于框架中,具体类存在于应用程序中。所以,框架是一个有待完成的应用程序,里面包含了特定领域的应用程序的共同方面;另外,通过定义一些设计参数,以用于各个应用程序的特殊细节。框架是面向对象系统获得最大复用的方式。1.2OO设计原则1、开-闭原则(OCP)(OpenClosedPrincipal):对可变性封装,模块应对扩展开放,而对修改关闭。模块应尽量在不修改原代码的情况下进行扩展。符合OCP原则的程序只通过增加代码来变化而不是通过更改现有代码来变化。选择性的封闭(StrategicClosure),没有任何一个大的程序能够做到100%的封闭,设计者必须对其设计的模块应该对何种变化进行封闭做出选择。核心原则:OCP原则的主要机制是抽象和多态。支持抽象和多态的关键机制是继承。2、里氏代换原则(LSP)(LiskovSubstitutionPrinciple):使用派生类完全替换基类(父类)后,程序行为功能不变。LSP原则是符合OCP原则应用程序的一项重要特性。3、依赖倒转原则(DIP)(DependencyInversionPrinciple):针对接口编程。高层模块不应该依赖于低层模块。二者都应该依赖于抽象。抽象不应该依赖于细节。细节应该依赖于抽象。DIP以LSP为基础,是实现OCP的主要手段,是设计模式研究和应用的主要指导原则。4、接口隔离原则(ISP)(InterfaceSegregationPrinciple):一个类对另外一个类的依赖性应当是建立在最小的接口上。使用多个专门的接口比使用单一的总接口要好。5、合成复用原则(CARP)(Composite/AggregateReusePrinciple):要尽量使用合成/聚合,尽量不要使用继承。信城通公司J2EE框架培训讲义共10页第3页1.3J2EE框架概述J2EE1.3体系架构图J2EE1.4体系架构图信城通公司J2EE框架培训讲义共10页第4页1.4设计模式设计模式是特定情境中标准设计问题的重复性解决方案。GOF描述的设计模式是:对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。例如GOF的《设计模式》(DesignPatterns)书中描述了23种基本模式。《JAVA模式》(PatternsinJava)书中描述了其它一些模式。1、创建型模式a、工厂方法(FactoryMethod):定义一个用于创建对象的接口,让子类决定实例化哪一个类。b、抽象工厂(AbstractFactory):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。c、建造(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。d、原始模型(Prototype):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。e、单例(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。2、结构型模式f、适配器(Adapter):将一个类的接口转换成客户希望的另外一个接口。g、桥梁(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化。h、合成(Composite):将对象组合成树形结构以表示“部分-整体”的层次结构。i、装饰(Decorator):动态地给一个对象添加一些额外的职责。j、外观(Facade):为子系统中的一组接口提供一个一致的界面。k、享元(Flyweight):运用共享技术有效地支持大量细粒度的对象。l、代理(Proxy):为其他对象提供一种代理以控制对这个对象的访问。3、行为型模式m、模板方法(TemplateMethod):定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。n、职责链(ChainofResponsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。o、命令(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。p、迭代子(Iterator):提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。q、中介者(Mediator):用一个中介对象来封装一系列的对象交互。r、观察者(Observer):定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。s、策略(Strategy):定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。……信城通公司J2EE框架培训讲义共10页第5页1.5J2EE设计模式例如SUN的《J2EE核心模式》(CoreJ2EEPatterns)书中定义了15种模式,TheServerSide.com的《EJB设计模式》(EJBDesignPatterns)书中定义了大量其它模式。1、视图表示层a、截获过滤(InterceptingFilter):提供请求预处理和后处理