`

关于view、controller、service、dao的理解

阅读更多

        最近,越来越对这几层的含义有兴趣,因此,根据在网上搜索到的资料以及自己的理解,特整理了这篇博文。

       

        首先,分层的目的:高内聚,低耦合。虽然有时候一个controller方法里面仅仅调用一个service的方法,一个service方法里面仅仅调用一个dao层里的方法,但是,这几层还是非常有必要存在的。一、这样看起来结构是很清晰的,虽然对很对新人来说确实看起来很复杂;二、可扩展性和适应性更加强,比如将来用户的业务逻辑有一定的改变,你需要做的仅仅就是在service层中多调用一个方法即可,而不需要对代码有太多的改动,抑或是你将来想换个mvc的框架的话,只需要对接收和返回参数方面做些处理即可,而不需要对service层和dao层做任何改动;三、维护更加简单,其实这个和第二点有点相似,不过,不同的是将来维护的不一定是你本人或者开发这个系统的人,所以,如果你严格按照这种架构来写的话,他们只需要有这种分层意识,很容易就能够对系统有个很好的掌握,也很容易能够对问题进行排查和修改。

 

        view:视图。这个很容易理解,其实view层就是用户用户可以看到的东西。后台怎么处理不关心,只关心怎么样想用户展示信息。

 

        controller:也可以成为action层,业务模块流程。我经常喜欢用控制视图的跳转来简单形容,但是这个是不全面的,因为他除了控制视图的转换之外,还控制了业务的逻辑,但是,这里的控制业务逻辑不是业务逻辑的实现,而仅仅是一个大的模块,你看到之后,知道它实现了这个业务逻辑,但是怎么实现的,不需要关心,仅仅需要调用service层里的一个方法即可,这样使controller层看起来更加清晰。

 

         service:业务逻辑层。接着controller层中,可以想到,service层是业务逻辑(商务逻辑)的具体实现。它向上层的controller层提供接口,并且使用dao层提供的接口。存在的必要性:有时候,我认为更多的时刻,service层中仅仅是调用dao层中的一个方法,那么它是否有必要存在呢?答案是肯定的。因为,假如将来客户的业务有一定的变动,那么这样一来,你只需要在service层中进行一些变动即可。记住,你写程序不应该仅仅为实现功能考虑,更多的还是应该为将来的维护考虑,因为大部分的时间还是在维护上的。

 

        dao:数据访问对象。他只负责对数据进行访问,而不管其他的什么业务逻辑,其实就是只干活,而不管为什么干。在dao层里面要完成的是数据访问逻辑以及对数据的访问。数据访问,大部分情况下就是对数据进行操作。dao层为上层的service层提供接口。dao层在操作完成后,如果是查询,则返回对象,如果是增删改,则仅仅需要返回一个boolean值表示成功失败即可。

 

         小弟正在摸索学习中,如果发现有哪里说的不对,请各位多多包涵并指正。

        

2
0
分享到:
评论
5 楼 商人shang 2013-05-18  
Tyrion 写道
呵呵,我的理解与楼主有点不同,Action是属于View层的,Service是属于Controller层的。

为什么会这样说呢?
4 楼 need_faith 2013-05-18  
view:视图层
service:服务层
domain:业务领域层
dao:数据持久层
3 楼 Tyrion 2013-05-18  
呵呵,我的理解与楼主有点不同,Action是属于View层的,Service是属于Controller层的。
2 楼 商人shang 2013-05-18  
Mybeautiful 写道
总结的很好。

谢谢,关于这个我真是犯了错误一次又一次,现在感觉有点懂了,不过,还是希望有经验的人多多指点下
1 楼 Mybeautiful 2013-05-18  
总结的很好。

相关推荐

    DAO层_Service层_Controller层、View层介绍

    DAO层_Service层_Controller层、View层的一些了解知识,帮助填充对这部分比较空白的开发者们。

    View层、ControllerView层、Controller层层、Service层、Dao层的介绍

    View层、Controller层、Service层、Dao层的区别以及对应的功能

    JavaWeb实现网上商城:JSP+Servlet+Dao

    MVC:Model View Controller Model: Dao +JavaBean View: Jsp Controller: Servlet Dao: 用于连接数据库及进行数据库的操作:增、删、改、查等 JavaBean:用于数据的封装,方便将查询结果在servlet与jsp页面之间进行...

    Java Web 的信息管理类的系统的设计与实现 人力资源管理系统 Java 大作业

    后端代码中主要有controller层、service层、dao层和utils层。Controller层主要作用为实现前后端的数据交互,因为在设计的过程中发现将controller层和service层合并可以减少大量的接口,从而减少对接口的管理工作,...

    java-web_学生管理系统(完成实现三成架构)

    3,在Dao层创建***dao接口,并设计关于数据表数据的增删改查等操作方法。 4,定义一个类实现上面的接口 5,在前台页面success.jsp中添加某数据表的增删改查操作(按钮或超链接) 6,从前台页面开始向后进行调用,jsp--...

    java 代码自动生成

    java 代码自动生成 dao service bean xml view,controller

    java实现一个聊天系统源码分享

    Service层:存放业务逻辑处理,也是一些关于数据库处理的操作,但不是直接和数据库打交道,它有接口还有接口的实现方法,在接口的实现方法中需要导入Dao层,Dao层是直接跟数据库打交道的,它也是个接口,只有方法...

    javaSeverWorkspace.zip

    最简单的SpringBoot 开发demoJvava Server遵循的 ... * 界面通过接口 请求数据 由Controller接待, Service后台处理事务Controller进入等待,Service 分发给Dao处理,处理完再通知Controller,Controller再返回给View

    21道Java Spring MVC综合面试题详解含答案(值得珍藏)

    强化注解的使用,在控制器、Service、Dao都可以使用注解,方便灵活。 Spring MVC的工作流程如下: 用户通过视图层发送请求到服务器。 在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理...

    spring/mvc

    spring mvc 列子,注解方式,只需直接新建view,并实现相应comtroller和service就行了,配置和dao层的内容基本不变,也就是每次只需写jsp(view),controller和service调用dao就行

    基于SSM框架实现电子商城系统带sql数据库文件

    标准的SSM框架有四层,分别是dao层(mapper),service层,controller层和View层。使用spring实现业务对象管理,使用spring MVC负责请求的转发和视图管理,mybatis作为数据对象的持久化引擎。 1)持久层:dao层...

    基于SSM框架实现电子商城系统带sql数据库文件分享

    标准的SSM框架有四层,分别是dao层(mapper),service层,controller层和View层。使用spring实现业务对象管理,使用spring MVC负责请求的转发和视图管理,mybatis作为数据对象的持久化引擎。 1)持久层:dao层...

    免费Spring+SpringMVC+Mybatis框架整合例子(SSM)支持跨域

    1.spring MVC + spring +mybatis,是标准的MVC设计模式,将整个系统划分为显示层,Controller层,Service层,DAO层四层使用Spring MVC负责请求的转发和视图管理spring实现业务对象管理,mybatis作为数据对象的持久...

    go web 项目开发脚手架

    # web 项目开发脚手架 ## 项目分层模式 ### MVC - Model:模型代表一个存取数据的对象。它也可以带有逻辑,在数据变化时更新控制器。 - View:视图代表模型包含的数据的可视化。...- `CLD`:controller、logic、dao

    学生管理系统.rar

    实现了学生管理系统的最基本功能,包括增删改查,满足MVC的设计模式,包括了Model层、View层、Controller层、Dao层、Service层、DB层。

    基于Idea开发的SpringBoot+MySQL的新冠核酸检测系统设计与实现.zip

    核酸检测系统采用SpringBoot+Freemarker+Jpa框架开发,是标准的MVC模式,将整个系统划分为View层,Controller层,Service层,DAO层四层。其中,Freemarker拿取数据进行展示数据,SpringBoot实现业务对象管理,Jpa...

    SSM+MAVEN+MYSQL框架整合原理+源码

    3.在控制层调用业务逻辑层(service),数据持久层(DAO)返回控制层,请求完成获取一个结果,设置一个要跳转的视图,(ModelAndView装载并传输数据,设置视图) 4.核心控制器调用 视图解析器:ViewResolver解析...

    基于SSM的图书管理系统

    运行软件:idea 带报告 基于ssm框架,整个系统划分为View层,Controller层,Service层,DAO层四层,使用Spring MVC负责请求的转发和视图管理,Spring实现业务对象管理,Mybatis作为数据对象的持久化引擎。

    框架SSM整合.rar

    SSM框架是Spring MVC ,Spring和Mybatis框架的整合,是标准的MVC模式,将整个系统划分为View层,Controller层,Service层,DAO层四层,使用Spring MVC负责请求的转发和视图管理,Spring实现业务对象管理,Mybatis...

    spring_MVC源码

    -- 这里在配成spring,下边也要写一个名为spring-servlet.xml的文件,主要用来配置它的controller --> 19. *.do</url-pattern> 20. </servlet-mapping> 21. <welcome-file-list> 22. <welcome-file>index.jsp...

Global site tag (gtag.js) - Google Analytics