层次结构分析——嗖嗖移动业务大厅项目
项目结构图示:
Constant(常量层)
DAO(数据访问层)全称为:Data Access Object,数据访问对象
Entity(实体层)
Exception(异常层)
Service(业务逻辑层)
Util(工具层)是utiliy的简写
各层次介绍
constant(常量层)
常量层用于存放项目中使用的各种常量,可能是switch中各个数字表示的具体含义,也可能是对某种状态的判断
图中的常量层内部有一个名为SystemConstant(系统常量)的接口
接口内有2个int类型数据,分别表示手机卡号是否可用的状态,可用为0,不可用为1
该常量接口可以用带有含义的词组,代替“魔法数字”显示
常量命名方式:
单词全部大写,单词之间用下划线分隔
例如:
// 是否为空 int IS_NULL = 0; // 为空 int NOT_NULL = 1; // 不为空
DAO(数据访问层)
DAO层,用来封装对于实体类的数据库的访问,即增、删、改、查操作,并且不添加业务逻辑
impl
全称为implementation class
implementation :实现;完成;执行
class:类
意思为:实现类,接口实现
图中的DAO层内部拥有关于各个表的方法接口,以及impl文件夹中相对应的实现类
DAO层命名方式:
类名(首字母大写) + Dao
实现类命名方式:
类名(首字母大写) + Dao + Impl
DAO层的写法看似麻烦,但它带来了什么好处呢?
答案是:我们无须关心接口背后的具体的实现类。假如:需要将现有的A实现类,更换为B实现类。只需要删除A实现类,再让B实现类依赖于该接口即可
Entity(实体层)
实体层,存放项目分析时得到的类,是一种用来封装数据和方法的模板或蓝图。类可以看作是一种自定义类型,用于描述具有相同属性和行为的对象
类的命名方式:
每个单词的首字母必须大写
Exception(异常层)
异常层,用于存放我们在项目中自定义的异常
异常的命名方式:
单词(首字母大写) + Exception
Service(业务逻辑层)
业务逻辑层,是处理逻辑上的业务,主要负责实现具体的业务功能,例如:用户登录注册、付费订单处理等
Service层的特点
封装性:Service层将业务逻辑封装起来,对外提供简洁的接口,使得其他组件或层级可以方便地调用 可重用性:Service层可以被多个控制器(Controller)或其他服务(Service)共享使用,提高了代码的重用性
独立性:Service层独立于其他层级,它不依赖于具体的数据访问方式或展示方式,使得系统各个层级之间的耦合度降低
Service和DAO层在结构和命名上极为相似,但负责的功能不同
Service层的职责包括:
封装业务逻辑:将复杂的业务逻辑封装起来,隐藏底层实现细节,提供简洁的接口供其他组件或层级调用
协调各个DAO层的数据访问:Service层可以调用多个DAO层,对数据访问进行协调,确保数据的完整性和一致性
实现事务管理:Service层负责管理数据库事务,保证在业务操作中的一致性和原子性
异常处理:Service层可以捕获和处理异常情况,提供友好的错误信息给上层处理
Util(工具层)
工具层,存放针对本项目的工具类,例如数据库连接、日期处理等
ervice层可以捕获和处理异常情况,提供友好的错误信息给上层处理
Util(工具层)
工具层,存放针对本项目的工具类,例如数据库连接、日期处理等