首页 > 技术文章 > 数据访问模型model-dao-service-controller

embedded-linux 2019-10-07 22:27 原文

一. MVC

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

  • 模型 (Model) 代表数据结构。通常来说,模型类将包含取出、插入、更新数据库资料等这些功能。
  • 视图 (View) 是展示给用户的信息的结构及样式。一个视图通常是一个网页,但是在Go中,一个视图也可以是一个页面片段,如页头、页尾。它还可以是一个 RSS 页面,或其它类型的“页面”,Go实现的template包已经很好的实现了View层中的部分功能。
  • 控制器 (Controller) 是模型、视图以及其他任何处理HTTP请求所必须的资源之间的中介,并生成网页。

Model指后台返回的数据;View指需要渲染的页面,通常是模板页面,渲染后的内容通常是HTML;Controller指Web开发人员编写的处理不同URL的控制器,controller在整个的MVC框架中起到了一个核心的作用,负责处理业务逻辑,因此控制器是整个框架中必不可少的一部分,Model和View对于有些业务需求是可以不写的,例如没有数据处理的逻辑处理,没有页面输出的302调整之类的就不需要Model和View,但是controller这一环节是必不可少的。

MVC经典数据访问模型一般应用于前后端一体的框架中,采用模板生成前端web,如beego。目前开发业务都采用前后端分离方式,但数据访问模型大致相同。

二. 数据访问模型

model→dao→service→controller

Model层,与数据库的表一一对应,定义表中数据。

Dao层,data access object,用于访问数据库,封装了增删改查基本操作,建议DAO只做原子操作,增删改查。 

Service是业务层,专注业务逻辑,对于其中需要的数据库操作,都通过Dao去实现。

Web/View表示层调用控制层(Controller),控制层调用业务层(Service),业务层调用数据访问层(Dao)。

 

参考:

1. 13.1 项目规划  beego, go web编程

2. 13.3 controller设计

3. 总结一下MVC思想

推荐阅读