天天看点

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这一环节是必不可少的。

dao层即model层,用于访问数据库

service是业务层,dao是数据访问层,这样的分层是基于mvc架构来说的,分层的主要作用是解耦。

对于spring这样的框架,(view\web)表示层调用控制层(controller),控制层调用业务层(service),业务层调用数据访问层(dao)。

具体起来,dao的作用是封装对数据库的访问:增删改查,不涉及业务逻辑,只是达到按某个条件获得指定数据的要求;

而service,则是专注业务逻辑,对于其中需要的数据库操作,都通过dao去实现。

参考:

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

2. 13.3 controller设计

3. 总结一下mvc思想