java框架中的controller层、dao层、domain层、service层、view层

Service层作为MVC模式中的业务层,起到解耦Servlet和Dao的作用,增强代码的可读性和可维护性。它处理逻辑业务,隔离了视图层与数据访问层的直接交互,降低了各层之间的依赖。尽管可能会增加代码量,但提高了模块的独立性和扩展性,有利于项目的长期发展。
摘要由CSDN通过智能技术生成

1.Controller层:接口层,用户访问请求时对接。

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

2.dao层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,

DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。

3.domain层:通常就是用于放置这个系统中,与数据库中的表,一一对应起来的JavaBean的

domain的概念,通常会分很多层,比如经典的三层架构,控制层、业务层、数据访问层(DAO),此外,还有一个层,就是domain层。

model层:和domain区别;可能都是javaBean,

这个区别是用途不同,domain通常就代表了与数据库表--一一对应的javaBean,

model通常代表了不与数据库一一对应的javaBean,但是封装的数据是前端的JS脚本,需要使用的数据

4.service层:Service层主要负责业务模块的逻辑应用设计。

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

5.view视图层:此层与控制层结合比较紧密,需要二者结合起来协同工发。View层主要负责前台jsp页面的表示。

问题一:Service层并没有做什么实际的工作,只是接受了Servlet,同时又调用了Dao。它本身并没有什么实际意义的代码,只是接收,调用。

很显然,这样增加了代码量。当然,我很轻易感受到了。但是它的优点是什么呢?不可能没有优点的情况下仅仅是为了增加代码量吧?

问题的思考

关于 Service 层存在的意义

1.Service被称作业务层。顾名思义,它处理逻辑上的业务,而不去考虑具体的实现。

2.对于MVC模式,MVC本身并不属于设计模式的一种,它是一种设计结构,这种结构的最终目的是为了解耦,也就是不同逻辑层的代码自身改变的时候,你别影响其他层。在写项目的时候,不同的逻辑上的代码之间的解耦是很重要的。

那很显然,为了使得我们在写代码的时候,不同的逻辑层内的代码之间的关联降低到最小,我们需要在不同的逻辑层之间加一些缓冲的层来达到一些解耦的效果。

3.比如,你在视图层,不会直接去调用Dao层。

那么对于Service,就是 Servlet 和 Dao 层之间缓冲的层。通过这一层来进行解耦,使得 Dao 层内的变化不会直接影响到 Servlet 层。

例如一个 sql 语句如果需要拼接,比如说是模糊查询, 则 sql 语句需要根据用户选择的条件来进行拼接。那么,拼接这个 sql 语句的逻辑部分,就放在 service 层进行。而 Dao 层,只负责接收拼接之后的最终的 sql 语句。

最后,service 也不是就非他不可。对于极小的项目而言,加了service层,反而增加了代码量,而且Dao层种以及预见了可能出现的情况,并进行了相应的扩展。那么,此时,既不需要了。当然,大型项目可能无法在Dao层内做到这些(我也没接触到过大型项目),就需要service了。

最终的目的也就两个词:解耦,便于扩展

 

  • 11
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 的这几个(controllerdaoservicedomain、utils、config)是基于经典的分架构设计模式的实现。 具体来说,这些的设计模式如下: 1. ControllerController是Web应用的入口,负责接收HTTP请求并处理响应。它通常使用MVC设计模式(Model-View-Controller)来实现,将请求分发给适当的Service,然后将响应返回给客户端。 2. ServiceService是应用程序的业务逻辑。它通常使用面向对象的编程思想来实现,负责处理业务逻辑、调用DAO进行数据持久化操作,以及提供事务管理等服务。 3. DAODAO是数据访问,负责与数据库进行交互,执行CRUD操作(创建、读取、更新、删除)以及其他与数据持久化相关的操作。它通常使用数据访问对象(Data Access Object)设计模式来实现。 4. DomainDomain是应用程序的领域模型,它通常包含应用程序的实体对象、值对象、枚举类型等。它通常使用领域模型(Domain Model)设计模式来实现。 5. Utils:Utils是应用程序的工具类库,包含各种工具类和工具方法,比如字符串处理、日期时间处理等。它通常使用静态方法或单例模式来实现。 6. Config:Config是应用程序的配置,负责配置应用程序的各种参数和属性,比如数据库连接池、缓存配置、日志配置等。它通常使用配置文件或注解来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值