项目开发设计模式理解之MVC模式
项目开发设计模式之MVC模式:
- M model 模型层
- V view 视图层
- C control 控制器
MVC模式在B/S架构下使用很广泛的软件设计模式,分成三个相对独立的模块构成,model+view+control,即模型+视图+控制。下面详细理解一下这三个块。
模型层:这一层是该模式中最核心的部分,很容易理解作为模型层来说,需要起总领全局的作用。模型主要包括业务流程和处理的过程以及所拥有的数据和程序逻辑。模型接受视图数据的请求,并返回最终的处理结果。模型是独立于视图和控制器的,因此一个模型可以供多个视图来使用,当模型的数据出现变动时,每个视图也相应收到模型的通知来更新自己。
视图层:视图就是用户看到的并与之交互的界面信息,用来呈现出模型。在JavaScript 应用中,视图大都是由HTML、CSS 和JavaScript 模板组成。视图通常直接从模型中取得它需要显示的状态与数据。对于相同的信息可以有多个不同的显示形式或视图。通俗讲,与用户交互过程中,视图层作为模型层的“传话”人,当用户发出请求—控制器响应并请求模型层—模型层通过视图来呈现给用户,当然这个呈现方式就肯定可以有差别了
控制器:位于视图和模型中间,起着一种桥梁纽带作用,主要负责接受用户的输入,将输入进行解析并反馈给模型,当模型响应时能够更新视图。通常一个视图具有一个控制器。当用户与应用交互时,控制器中的触发器负责事件监听。
优点:
1. 实现各个模块之间的分离,每一层分工明确,各司其职,降低耦合性,提高可维护性、可移植性以及可扩展性,更容易更换具体的实现,即后期维护的难度,而对其他层代码影响较小。
2. 一个模型可以对应多个视图,降低冗余,同时独立于视图,可移植性高,比较适合大项目的开发和维护。
缺点:
1. 三层结构很好地降低了模块之间的耦合性,但是实际来说导致系统结构的复杂度反而增大,实际实现起来的难度变大。
2. 视图层作为对模型层的反馈,要访问模型数据是效率较低。