javaweb service包的目录结构

1 service包说明

之前开发service时,只有service接口-service实现类 对应着dao接口-dao实现类
现在要求拆分service为

名称 说明
service包 接口,纯粹的抽象类,全都是未被实现的抽象方法。
abst包 抽象包,下面的类叫抽象类。
实现service包中的接口,但是只实现对dao层进行直接调用的方法(对数据的增删改查),其他方法保持不变。
由于类里存在未被实现的抽象方法,因此被称为抽象类,所在的包则为抽象包。
impl包 实现包,下面的类叫实现类。
继承abst包的类,实现service包中接口,只实现abst类中未被实现的抽象方法,即接口中独有的方法,无法通过直接调用dao层去实现的方法。

这样就将service包中的业务处理方法和对数据库的直接调用方法拆开到两个包中进行实现,方便管理,再在第二个包中通过继承实现汇合。

这种service包的管理并不会影响dao层,dao层并不关心谁调用我,dao层只需要写好自己的模块即可,所以mybatis的使用或者BaseDao的封装以及调用还是老样子

1.1 包的结构

dao的接口依然和service的接口对应
dao的接口依然和dao的实现类对应
service的接口则分到两种包下的类去对应 两种包下的类之间又一 一对应形成父子继承
javaweb service包的目录结构

1.2 service模块只有独有的方法

接口
接口中只有一个service独有的方法
javaweb service包的目录结构

抽象类
此时也要在抽象包下创建对应的抽象类,抽象类实现接口,但是里面没有东西,注意抽象类的abstract声明需要手动加上去
javaweb service包的目录结构

实现类
此时在实现包下创建对应的实现类,实现类继承抽象类,然后实现接口,然后进行方法重写。
这个重写的方法根据业务逻辑需求,去dao层调用一个或多个方法
javaweb service包的目录结构

Dao的接口
接口显示虽然创建了五个方法,但是只有2个方法被调用,分别是 分页查询 和 统计总数量
javaweb service包的目录结构

1.3 service模块有多种方法

接口
接口中有直接调用dao的方法,也有需要进行业务处理再调用dao的方法
javaweb service包的目录结构

抽象类
此时要在抽象包下创建对应的抽象类,抽象类实现接口,然后进行方法重写。
抽象类下的方法就只是简单的直接调用dao层的方法。
javaweb service包的目录结构

实现类
此时在实现包下创建对应的实现类,实现类继承抽象类,然后实现接口,然后进行方法重写
javaweb service包的目录结构

上一篇:MyBatic与Spring的整合,传统DAO方式的开发


下一篇:MyBatis:SqlSession.getMapper()源码分析