层次系统介绍与举例.ppt_第1页
层次系统介绍与举例.ppt_第2页
层次系统介绍与举例.ppt_第3页
层次系统介绍与举例.ppt_第4页
层次系统介绍与举例.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、层次系统 介绍与举例,袁国泉 2010.3.,层次系统简介,OSI 七层结构 TCP/IP 四层结构,典型结构1,每个层次是一个独立的组件。它的责任是:提供了由上层使用的服务,并且委派任务给下一层次。 需要防止较高层次直接越级访问较低层次。,层次N,层次N-1,层次1,客户,使用,典型结构2,每个独立层可能由多个不同的相对独立的实体组成。这些实体之间可能也有相互调用的关系。 可以通过层的接口保护层次之间的封装特性。,Layer1,组件_1.1,组件_1.2,组件_1.3,Layer2,组件_2.1,组件_2.2,组件_2.3,Layer3,组件_3.1,组件_3.2,组件_3.3,分层系统优点

2、和目标,层的重用 标准化支持 局部依赖特性 可替换性 层间低耦合、层内高内聚,设备管理信息系统总体功能,先分模块,再分层,系统概述,本系统采用JavaEE平台开发 集成Struts、Spring、Hibernate框架 后端采用Oracle数据库,用到的工具和平台,开发工具:MyEclipse 开发平台:JavaEE、JRE1.6; Struts1.3、Spring2、Hibernate3.1 版本控制工具:CVS Web服务器:Tomcat 数据库服务器:Oracle,JavaEE中典型的分层结构,表现层,控制层,持久层,业务层,数据库,前台页面展示,分发请求、 处理业务逻辑,提供数据库支持

3、,系统架构,用到的技术,表现层,控制层,持久层,业务层,数据库,HTML、JSP、JS、CSS、Struts,Struts的Controller,Hibernate,Java、Spring,Oracle,包的概要介绍,表现层: WebRoot 控制层: com.puzhen.struts.action 业务层: com.puzhen.services 持久层: com.puzhen.dao com.puzhen.hibernate.artifacts,包的详细介绍,包的详细介绍(cont.),配置文件介绍(.xml文件),web.xml:Web应用的配置文件 struts-config.xml

4、: Struts框架的配置文件 applicationContext.xml:Spring框架的配置文件 *.hbm.xml:Hibernate框架的配置文件,分层时要注意的地方,1、上层总是依赖其下层,依赖关系不跨层。 2、表现成除外,同一层之间方法不允许相互调用。这是实际开发中 一些开发者容易范的错误!如果真是同一层之间存在方法调用,需要 注意,这些调用都是一些上层不可见方法,比如一些工具方法等。 3、一切从服务层出发,从系统需要提供的功能进行分析,确定 Service接口中的方法。而不是从数据库的表出发,创建DAO,再创 Domain,然后Service,这实际上是对系统分层的误解。 4

5、、系统最核心的设计就是将系统中的实体划分为领域模型。在此基 础上设计数据的DAO层,并将这些活动暴露给服务层,服务层的实现 依赖于领域活动。 5、每个接口的职责范围明确有界。,分层系统之利器,接口分离 控制反转 对象-关系映射,接口分离,接口分离原则ISP (Interface Segregation Principle) 采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的接口要好。 如果你拥有一个针对多个客户的类,为每一个客户创建特定业务接口,然后使该客户类继承多个特定业务接口将比直接加载客户所需所有方法有效。 模块的替换性和修改性,Facade模式,GOF设计模式对Facad

6、e模式是这样描述: 为子系统中的一组接口提供一个统一接口。 Facade模式定义了一个更高层的接口,使子系 统更加容易使用。,Facade模式的要点: 1、从客户程序的角度看,Facade模式不仅简化了整个组件系统的接口,同时对于组件内部与外部客户程序来说,从某种程度上也达到了一种“解耦”的效果内部子系统的任何变化不会影响到Facade接口的变化。 2、Facade设计模式更注重从架构的层次去看整个系统,而不是单个类的层次。Facade很多时候更是一种架构设计模式。,控制反转,Spring框架 IoC(Inversion of Control) 又称“依赖注入”(Dependence Inje

7、ction) Java反射机制,IOC的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。 其原理是基于OO设计原则的The Hollywood Principle:Dont call us, well call you(别找我,我会来找你的)。也就是说,所有的组件都是被动的(Passive),所有的组件初始化和调用都由容器负责。组件处在一个容器当中,由容器负责管理。,理解IoC,IoC解耦过程,USB接口和USB设备,拿掉IoC容器后的系统,电脑主机不会关心USB接口上连接的是什么外部设备,而

8、且它确实也无需知道。 它的任务就是读取USB接口,挂接的外部设备只要符合USB接口标准即可。,ORM,对象-关系映射(Object/Relation Mapping),ORM:是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 典型ORM框架:Hibernate、iBatis,传统的三层架构,“基础结构层”:从实践的表现上来看,可能就是一些帮助类,比如SQLHelper,也可能是一些工具类,比如TextUtility。其被其它各层所访问。,基于分层的概念:表现层只能跟业务逻辑层打交道,而业务逻辑层在数据持久化方面的操作,则依赖于数据访问层。 表现层对数据访问层的内容一无所知。,领域驱动设计(DDD: Domain-Driven Design),领域驱动设计将软件系统分为四层: 基础结构层、领域层、应用层和表现层。 与传统的三层架构相比,数据访问层已经不在了,它被移到基础结构层了。,领域层

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论