android编码框架总结(MVC与MVP)

来源:互联网 发布:win764位极速优化版 编辑:程序博客网 时间:2024/05/30 23:39

博文目的:

       我从事安卓编程已有三年有余,很早以前就想总结一下各种开发框架,现今将个人理解以博文诉之:

.MVC

          MVC(Model-View-Controller,模型-视图-控制器)模式是80年代Smalltalk-80出现的一种软件设计模式,后来得到了广泛的应用,用一种业务逻辑、数据、界面显示分离的方法组织代码,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

  • 模型层(Model) 
    我们针对业务模型,建立的数据结构和相关的类,可以理解为对数据库或网络得到的数据进行解析,处理等相关操作。

  • 视图层(View) 
    一般采用布局文件(xml)文件或者JAVA代码编写的自定义组件进行界面的描述。。

  • 控制层(controller) 
    android的控制层通常在acitvity、Fragment或者由它们控制的其他业务类中。

android的MVC缺点

在Android开发中,Activity,fragment等一般用于解析布局文件和渲染视图,若都把业务负载其上,会显得代码较为臃肿,不利于查阅代码,大大降低代码的可读性。

二.MVP

   MVP(Model View Presenter)MVP的角色定义分别为:

  • Presenter 
    作为View和Model的沟通的桥梁,它从Model层检索数据后返回给View层,使得View和Model之间没有耦合。

  • Model 
    主要提供数据的存取功能。Presenter需要通过Model层来存储、获取数据(如往服务端获取数据后解析,或将数据上传到服务端等)。

  • View 
    负责处理用户事件和视图部分的展示。

优点

  • 降低耦合度,实现了Model和View真正的完全分离。
  • Presenter可以复用,一个Presenter可以用于多个View,而不需要更改Presenter的逻辑。
  • 如果我们把逻辑放在Presenter中,便于程序员测试软件。

缺点

  • 如果Presenter与某个特定的View联系较为紧密之时,那样当View发生更改时,对应的Presenter也需要随之更改了。
  • 需要写多余代码。

0 0
原创粉丝点击