MVC是一种架构模式,程序分层,分工合作,各层既相互独立,有协同工作。
MVC:Model+View+Controller
- Model层:业务数据的信息表示,关注支撑业务的信息构成,通常是多个业务实体的组合。
- View是视图层:为用户提供界面UI,重点关注数据的呈现。
- Controller:调用业务逻辑产生合适的数据(Model),同时传递数据给视图层用于呈现,有了视图,有了模型,他们之间的沟通需要控制器了,
MVC的本质:业务数据的抽取与业务数据的呈现相分离。
前端控制器。
Controller和视图起始并不耦合,他们之间没有任何联系,但是因为Controller需要根据页面的要求产生合适的数据,而页面呈现又不能脱离业务逻辑凭空展开,左移它们之间是既独立有协同的。
在Model层需要思考,去给用户展现什么,在View需要去思考,如何去将这些数据布局,以一种优美合理的方式展现给用户,而在Controller层需要调用哪些业务逻辑呈现给用户正确的数据逻辑,使得效率更高,性能更好。
1.首先用户请求通过http请求到达前端控制器(Front controller)也叫做调度器(Dispatcher),前端控制器了解这个请求应该被谁处理,传给具体的控制器(Controller),生成了业务数据,并将业务数据返回给了前端控制器,此时前端控制器将这些数据分发给视图模板(View template),由业务视图来呈现最终的用户页面,将呈现用户页面返回给前端控制器,前端控制器返回给浏览器端,此时用户即可看到所请求的页面。
Front Controller,负责分发调度(1)前端调度器将请求分发给控制器去生成业务数据;
。(2)前端控制器将生成的业务数据分发给恰当的视图模板来生成最终的用户请求界面。
Controller控制器了解所用的业务细节,负责业务数据的抽取
view template了解所有前端的特性,负责页面的呈现,