JavaWeb开发分层思想(一)

一、认识DAO、Service、Controller层

DAO(Data Access Object)

1、直接看英文意思就是“数据访问对象”,也就是做一个“接口”

而DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置

2、简单来说就是Dao层一般用于对数据库的具体操作,包括各种具体的增删改查语句和数据库数据和Java模型的映射。

Service(中间层、业务逻辑层—做个接口)

1、Service层主要编写具体业务逻辑,每个Service一般包含一组相关的业务逻辑(比如“用户管理”是一个Service,”文章管理“是一个Service)

Service层主要负责业务模块的逻辑应用设计。同样是首先设计接口,再设计其实现的类,接着在Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。Service层的业务实现,具体要调用到已定义的DAO层的接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。

Controaller(控制层)

1、其实相当于Servlet那一层所做的事

Controller层负责具体的业务模块流程的控制,在此层里面要调用Serice层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。

二、编写代码

1、开发代码应该从底层做起,避免代码的繁杂修改以及需求变化。

Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法

java分治思想 java分层设计思想_业务逻辑

2、从图中可以看出,我们应该从底层的DAO层到service层到servlet层这个顺序做也就是从底层做起。

三、关于这些开发层所遇到一些问题

1、 为什么将Service(Dao)层设为接口层,单独拿出一个ServiceImpl(DaoImpl)作为实现层

主要还是为了方便项目管理,增加代码的复用性。当项目很大、代码很多时,可能存在多种业务逻辑类似但具体业务有所区别的需求,此时让它们都集成同一个接口层就好了(只是情景之一)