您的位置:首页 > 运维架构 > 网站架构

浅谈android mvc、mvp架构思想

2017-04-19 10:37 197 查看
MVC概念
   
   MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。
安卓中mvc的具体体现

M:业务逻辑和实体模型
V:对应于布局文件
C:对应于Activity/Fragmnent
传统的mvc模型虽然存在着分层的思想但是也存在着一些弊端:
    1、随着业务后期越来越复杂,你会发现Activity类会越来越臃肿,极其不易后期的代码维护工作,其主要原因是由于mvc各个层之间的相互引用关系所致---view和model层之间的相互引用。
    2、view层和control层分层不是很清晰,view层虽然指的是布局文件,但是真正在布局文件xml中可以做的事情十分局限,包括数据的绑定,事件的处理都是在Activity中进行,使得Activity既像view又像controller

MVP概念
   MVP全名是Model View Presenter,该模型是mvc模型的演化版本,既然是演化版本,那么就对应着mvc模型以上提出的弊端的改进;
安卓中mvp的具体体现为:
M:业务逻辑和实体模型
V:对应于Activity,负责view的绘制和交互
P:负责完成View与model之间的交互作用

MVP相对于MVC的有点有很多,比如:
1、减少Activity的职责,简化了Activity中的代码,将复杂的逻辑代码提取到了Presenter中进行处理,耦合度大大降低,方便后期代码维护
2、方便进行单元测试,所有的业务逻辑均放在presenter中,无需在Activity中进行编写测试代码,需要测试prtesenter中的某个功能时,只需要添加具体功能的测试实现类即可
3可有效的避免Activity内存泄漏,具体操作是在Activity销毁时,分离Activity的presenter的引用。

MVC与MVP模式的模型图如下是:
  

                


下篇博客来介绍如何实现下mvp架构思想以及避免Activity leak
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: