常见包名分层模型:
谨记:只是一个逻辑概念而已,有助于理解和架构分层 把设计和编码分离 达到高内聚 弱耦合,从而各司其职
1.持久层(Persistence):-实体层-常用包名:entity(实体类)
任务:是负责把数据保存起来,一般是指保存至数据库或者文件,也可以负责完成与之相关的行为。
持久层指的是把数据长期保存起来,如数据库把数据长期保存在硬盘里,XML也可以长期保存数据,还有如果把数据存放到指定文件中,也可以成为持久层。
持久化可以理解为动词。Hibernate做的就是持久化的操作,主要是对数据库底层的OR映射,这样我们就不必关心讨厌的关系映射了,直接操作对象就可以了。
1. 持久 实体 Entity 的两种状态:
<1> 受管状态:
此状态下实体的变化将自动与数据库同步
<2>自由状态:
此状态下实体的变化不能同步到数据库
Dao层 (Data Access Object)
DAO模式:即Data Accessor模式和Active Domain Object模式。
Data Accessor模式:实现数据访问和业务逻辑的分离。
Active Domain Object:实现了业务数据的对象化封装。
Domain Object:简单来讲就是对领域内涉及的各个数据对象,反映到代码,就是一个拥有相关属性的getter,setter方法的java Bean。
DAO模式通过对业务逻辑层提供数据抽象层接口,实现了以下目标:
1. 数据存储逻辑的分离:通过对数据访问逻辑进行抽象,为上层结构提供抽象化的数据访问接口。
2. 数据访问底层实现的分离:数据访问划分为抽象层和实现层,从而分离了数据使用和数据访问的底层实现细节。
3. 资源管理和调用的分离。
4. 数据抽象:DAO模式通过对底层数据的封装,为业务层提供了一个面向对象的接口,使得业务逻辑开发人员可以面向业务中的实体进行编程。
DAO = Data+Accessor+Domain Object
数据访问对象,夹在业务逻辑(biz层business)与数据库资源中间。
软件开发过程中 系统的设计开发一般分层设计
一般分为 表现层 控制层 业务逻辑层(biz层business) 数据层
以此实现软件层次结构分离 各司其职
比如表现层只负责数据的显示,控制层只负责数据请求的调度,业务逻辑层负责实际项目中业务的逻辑处理,而在这个过程中,我们肯定会调用数据库的数据,比如对数据库中数据的增删改查,如果没有专门的数据访问层,我们可能会直接在业务逻辑层中写调用访问数据库并操作数据的代码,简单的例子就是,在业务逻辑层中出现了jdbc等等底层的访问操作数据库的代码,这样对代码的分层结构是很不合理的,而且耦合性也很厉害,更不利于后期开发,所以我们把访问和操作数据库的这些代码单独分离出来,简单的说 dao层 就是对数据库中数据的增删改查等操作封装在专门的类里面,在业务逻辑层中如果要访问数据的时候,直接调用该dao类(包括了如何访问数据库和数据的增删改查等等代码),就可以返回数据,而不需要再在业务逻辑层中写这些代码。
DAL:Data Access Layer
数据访问层,是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。
BLL:Business Logic Layer,也称作BIZ层
业务逻辑层,主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理。如果说数据层是积木,那逻辑层就是对这些积木的搭建。
这个写的很感觉不舒服不知道为啥~简单的说就是:
1.显示层(activity)调用业务逻辑层(biz :business层).
2.业务逻辑层(biz层)调用(dao层:数据访问对象).
3.dao层调用 entity层(实体层)