一、简要概述
- MVP是由MVC发展而来,总体目的与作用相同。都是为了软件构架有层次之分,使得核心逻辑、界面控制、数据这三者分层清晰明了。减少了三者之间的逻辑耦合与功能耦合。也是的代码清晰易读。从而减少因写代码造成的bug。也增加了软件整体的稳定性。
- 写大型一些的软件一般都要按功能模块化。一个软件由多个独立模块组成,这样做的优点如下:
- 模块功能相对独立
- 便于多人协作开发。
- 模块也可以在其他项目复用。
- 也便于模块单独开源等
- 模块实现接口并对外提供接口(保证模块可以单独更新)
- 而MVP/MVC等架构是在模块化的基础上,给所有模块分成三个或多个层面。构架给所有模块提供了清晰明了的分类。使得软件整体构架清晰易懂。便于开发者之间合作以及新成员快速上手。
二、适用场合
- MVP/MVC等架构的出现与发展都是为了解决大型软件中界面逻辑代码与功能逻辑代码相混合而产生的。而为了实现MVP/MVC等架构的时候,就需要在基本的代码中加入构架相关的代码。因此不适用于简单的工具类软件使用。比如做一个基础的“串口小助手工具”如果使用了MVP/MVC等架构,代码看起来反而复杂了。而在稍大一些软件中,使用MVP/MVC等架构,则可以带来“磨刀不误砍材功”体验。
三、MVP/MVC架构原理
前面提到使用这个架构主要目的就是把“界面逻辑代码”、“功能逻辑代码”、“提供数据的代码”这三者分成三个层次。这三个层次与MVP/MVC构架的关系如下:
M :Model :提供数据的代码
V : View :界面逻辑代码
C :Con