前端控制器
MVC实际上是我们开发web程序的一种通用架构方式,下图是由spring团队共享给java社区的一种设计模式,也是MVC的一种实现方式。
Front Controller(MVC)

执行流程
首先用户端的请求经过http协议到达前端控制器,前端控制器它了解这个请求应该被谁来处理,所以把请求代理给了控制器,控制器这里它们了解业务逻辑的细节,因为调用业务逻辑生成了我们的业务数据,并将业务数据返回给了前端控制器,此时前端控制器在将这些业务数据分发给业务视图,由业务视图呈现最终的用户页面,将呈现好的用户页面返还给前端控制器,并最终将页面返回给浏览器端。
各个组件
Front controller:
前端控制器负责分发调度
Controller:
控制器负责业务数据抽取
viewTemplate:
视图模版负责页面呈现
前端控制器作用:
既负责分发请求到具体的控制器去生成业务数据,另一方面将生成的业务数据分发给恰当的视图模版来生成最终的用户界面
理解前端控制器
如图是医院就诊图解,因为分诊台是在具体科室之前具体接待我们的病人,因此分诊台就扮演着前端控制器的角色,也称之为调度器,而各个科室则扮演着控制器的角色,因为它们了解具体的处理细节。

MVC概念
- MVC --
Model View Controller
- MVC设计模式是一种常用的软件架构方式,以
Controller
,Model
,View
三个模块分离的形式来组织代码 - MVC的核心思想(本质)是业务数据抽取同业务数据呈现相分离
MVC分层
View:
视图层,为用户提供UI重点关注数据的呈现
Model:
模型层,业务数据的信息表示,关注支撑业务的信息构成,通常是多个业务实体的组合
Controller:
控制层,调用业务逻辑产生合适的数据(Model),传递数据给视图层用于呈现

MVC基本流程
控制层接受到客户端请求,调用模型层生成业务数据,传递给视图层,将最终的业务数据和视图响应给客户端做展示
MVC优点
- 各层间的耦合度低
- 可重用性高
- 可维护性高
- 部署快,生命周期短
MVC总结
- MVC是一种架构模式
程序分层,分工合作,既相互独立,又协同工作。
比如控制器负责产生数据,视图则负责渲染数据,这个是独立的,但它们之间数据是需要协同匹配的。 - MVC是一种思考方式
需要将什么信息展示给用户?如何布局?调用哪些业务逻辑?

网友评论