Java分层软件模型以及Hibernate Api简介

来源:互联网 发布:民航网络信息安全 编辑:程序博客网 时间:2024/05/18 01:21

三层架构是目前最典型的一种应用软件的架构

1.表述层:提供与用户交互的界面。例如GUI和web页面
2.业务逻辑层:实现各种业务逻辑。例如当用户发出生成订单请求时,这层负责计算订单价格,验证订单信息等等。
3.数据库层:负责存放和管理应用的持久性业务数据。用来和数据库交互的。

软件分层符合以下特征:
       1.每层有一组相关的类或组件组成,共同完成特定的功能。
        2.层与层之间是由上而下的依赖关系,就是上层可以访问下层,而下层不依赖与上层。表述层可以访问业务逻辑层,业务逻辑层不依赖于表述层。
       3.每层对上层公开API,但是具体实现细节是透明的。

软件分层的优点

       1.伸缩性:应用程序可以支持更多的用户。
        2.可维护性:但需求发生改变时,只要修改软件的一部分,不会修改软件的其他部分。
        3.可扩展性:当前系统增加新功能的难易程度。层数越多扩展性越好
        4.可重用性:同一程序可以满足多种需求。
        5.可管理性:层数越多越容易管理。
缺点就是层数越多,对程序人员的要求更高,在设计阶段,必须构思合理的架构体系。


软件的模型

       在分析阶段,需要创建概念模型,在设计阶段需要域模型和数据模型。
1.概念模型
         概念模型描述了每个实体的概念和属性,以及实体之间的关系。实体之间有一对一,一对多,多对多的关系。
2.关系数据模型
          这种模型是在概念模型上建立起来的,用来描述这些关系数据的静态结构。它包括一个或多个表,表的所有索引,视图,触发器,表于表之间的参照完整性。
3.域模型
          域模型是面向对象的,也叫设计模型。包含了具有状态和行为的域对象,域对象之间的关系。
实体域对象:通常把业务领域中的名词作为实体域中的对象。
过程域对象:过程域对象表示应用中的业务逻辑和流程。
事件域对象:代表了系统中的一些事件。

关联:指得是类之间的引用关系,实体域对象之间最普遍的一种关系。分为单向关联和双向关联。
依赖:指得是类之间的访问关系。过程域对象往往依赖实体域对象
聚集:指的是整体和部分之间的关系,在实体域对象之间常见。
一般化:指的是类之间的继承关系。


Hibernate接口可分为几类
1.访问数据库操作的接口,Session,Transaction,Query接口。
2.配置Hibernate的接口,Configuration。
3.使应用程序拦截Hibernate内部发生的事件,并作出相应的回应。包括Interceptor,LoadEventListener等。
4.用于扩展Hibernate的接口,UserType等

核心接口:
Configuration接口:配置Hibernate,根启动Hibernate,创建SessionFactory对象。
SessionFactory接口:初始化Hibernate,充当数据存储源的代理,创建Session对象。
Session接口:负责保存,更新,删除,加载和查询对象。
Transaction接口:管理事务。
Query和Criteria接口:执行数据库查询。


        SessionFactory接口:一个SessionFactory实例对应一个数据存储源。它是线程安全的,可被多线程共享,它是重量级的,不要随意创建和销毁这个实例,一个数据库只要创建一个就行了。因为它需要很大的缓存,用来存放预定义的sql语句以及映射元数据等。可为SessionFactory配置一个缓存插件,这个缓存插件被称为Hibernate的第二级缓存。二级缓存是用来存放被工作单元读过的数据,将来其他工作单元可能重用这些数据,所以这个缓存中的数据被所有工作单元共享,一个工作单元通常为一个数据库事务。
       Session接口:也被称为持久化管理器,提供了持久化相关的操作。不是线程安全的,session实例的轻量级的,创建和销毁不会消耗太大资源。Session有一个缓存,被称为Hibernate的第一级缓存,存放当前工作单元加载的对象,只能当前工作单元访问。


0 0