美文网首页
android model层架构

android model层架构

作者: yqyzxd | 来源:发表于2016-09-23 16:27 被阅读271次

Favor composition over inheritance.

#示例图

图画的有点丑,见谅。简单说一下,Presenter就是Mvp中的P,View即MVP中的V需要什么功能都由Presenter提供,事实上Presenter也是借助Usecase来完成相应功能的,Presenter持有完成所有功能的Usecase(注:每一个Usecase完成一个功能,比如登录就是LoginUsecase,注册就是RegisterUsecase)。

          为什么一个Usecase只完成一个功能?

1,单一职责原则。这个不多说。

2,我倾向于使用组合去完成功能的复用,而不是继承。就像积木,需要哪个材料就选取哪个材料,精简、高效。因为最小功能单位的复用性才算最大的。

事实上,不管View层需要什么功能,直接调用presenter.execute(BaseRequest request)方法即可。当然request是具体的请求对象,继承BaseRequest。也就是说一个request对应Usecase。我们可以在Presenter中维护一个UsecaseManager实现通过request得到对应的Usecase。

Usecase是一个抽象类,上代码

```

public abstract class Usecase<Q extends BaseRequest,R extends BaseResponse>{

privateSubscriptionmSubscription= Subscriptions.empty();

public void execute(Q request,Observer<R> subscriber){

unsubscribe();

mSubscription= buildUsecaseObservable(request)

.subscribeOn(Schedulers.io())

.observeOn(AndroidSchedulers.mainThread())

.subscribe(subscriber);

}

protected abstractObservable<R> buildUsecaseObservable(Q request);

public voidunsubscribe(){

if(!mSubscription.isUnsubscribed()){

mSubscription.unsubscribe();

}

}

}

```

所以实现一个Usecase的步骤是继承Usecase,覆写buildUsecaseObservable方法,通常Usecase需要一个Repository来完成相应的操作,就在构造函数中通过Dagger2注入进来。若是明确只需要通过网络发起请求,可以直接注入一个Api,然后再Api中完成相应操作。

本片可能写的很没有逻辑,但是中心思想是使用组合而非继承,希望对你有所启发。

相关文章

  • Android的mvc架构

    Android的mvc架构 mvc架构主要是Model层,View层,Controller(控制器)。 Model...

  • android model层架构

    Favor composition over inheritance. #示例图 图画的有点丑,见谅。简单说一下,...

  • MVVM 架构与数据绑定库

    Model-View-Presenter(MVP),即模型-视图-表示层,架构被广泛应用于 Android 应用程...

  • 转载:mvc、mvp、mvvm使用关系总结

    标签:android/架构 MVC MVC全名是Model View Controller,是模型(model)-...

  • Android 系统架构

    Android 系统架构 应用层 应用框架层 系统运行层库 硬件抽象层 Linux 内核层Android 系统架构...

  • 安卓回顾1

    1.android系统架构 Android系统架构(由下往上): Linux Kernel层: linux内核层,...

  • Android系统五层架构

    1. Android系统架构 Android系统架构分为五层:从上到下依次是应用层、应用架构层、系统运行库层、硬件...

  • 安卓基础知识(Android系统架构)

    一、Android系统架构 Android大致可以分为四层架构:Linux内核层、系统运行库层、应用框架层和应用层...

  • 2019-08-12-Android系统架构简单介绍

    Android系统架构 Android的系统架构分为五层,分别是应用层(system app),应用框架层(jav...

  • Android面试汇总

    1.Android系统架构 最新的Android架构官方分为5层: Linux内核层→硬件抽象层(HAL)→系统运...

网友评论

      本文标题:android model层架构

      本文链接:https://www.haomeiwen.com/subject/lmvtyttx.html