MVP架构原理和实现

本文介绍了Android开发的三大框架MVC、MVVM和MVP。重点讲述了MVP架构的原理,强调其通过将数据M层获取数据,P层处理业务逻辑并更新数据,最后由V层展示UI。虽然MVP需要创建较多的契约类和P层类,但能有效分离职责,提高代码可维护性。MVP的实现通常结合注解和工厂模式,简化P层对象的创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MVP架构介绍

Android开发三大框架,MVC,MVP,MVVM,简单介绍下其余两种

MVC

M(Model)是数据模型,或者数据处理,V(View)是视图控件,C(controller)是逻辑控制类,MVC是以前常用或者老式的项目用的比较多,优势和缺陷都相当明显,感觉并会没有彻底做到VC分离的效果
优势:除了model是独立的,V和C在Activity中体现最为明显,Activity即作为V,也作为C,处理逻辑业务和UI交互非常方便,都在一个Activity里面搞定。
缺陷:它的优势也是它的缺陷,过度集成在同一个Activity里面,耦合度也比较强,抽离的话也有可能涉及到引用持有问题,代码量和逻辑会越来越多,越来不清晰,日后想要维护或者新增功能,成本会很高。

MVVM

View: 对应于Activity和XML,负责View的绘制以及与用户交互。
Model: 实体模型。
ViewModel: 负责完成View与Model间的交互,负责业务逻辑。

MVVM目的也是为了彻底分离控件和数据的架构,它主要是依靠DataBinding进行数据绑定,作用就是讲数据和控件绑定起来,当数据进行改变的时候,会自动刷新View,由于本人没用过,所以没什么发言权

MVP

MVP架构是当前比较流行开发框架,相比于MVVM,我觉得相比就多了一个更新数据的步骤,但是MVP的实现是不需要依赖框架,也是优势之一,灵活。
原理:将数据M层获取数据,由P层进行完成MV业务逻辑交互和数据更新逻辑,然后将数据结果传递给V层进行UI数据更新和UI业务处理。
作用:将M层和V层彻底隔离出来,每个层只需要负责自己的逻辑,然后要交互其它层,就经过P层开放的接口去处理。达到代码分割效果。
缺点:一个功能模块可能就需要一个P类,一个成熟的MVP项目会需要创建很多很多的契约类和P层类,且P层的代码量也会越来越重,维护相比MVC来说还是好很多倍了。

刚说了MVP的好处就是不需要依赖框架,所以实现起来也有灵活,可以配合各种模式实现MVP

MVP例子:
1.先创建些基本的契约类,BaseView用于P层View的结果回调,BasePresenter用于对应P类的初始化。当然也创建一个具体模块的测试契约类

public interface BaseContact {
   
    interface BaseView {
   
        void onSuccess();
        void onFail();
    }

    interface BasePresenter<V>{
   
        void onCreatePresenter();
        void init(V view);
    }
}
public interface TestContact{
   
    interface View extends BaseContact.BaseView{
   
        void showSomething(String msg);
    }

    interface Presenter<T> extends BaseContact.BasePresenter<T>{
   
        void test(String msg);
    }
}

2.创建基础的P类 和 下层具体模块的P类

public class BasePresenter <V extends 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值