这是模仿Google官方mvp示例的小demo,结合Retrofit2.0,rxjava加上自己的一点理解所写. 感谢干货免费开放的API.
github地址:https://github.com/X-FAN/GankAPP 欢迎大家star.
google官方的mvp设计模式,比较不同的一点是加上了一个契约类,把逻辑层和视图抽象发在一起.不过这样也的确一目了然,值的借鉴一下.代码类似于下面:
public interface AndroidContract {
interface Presenter extends BasePresenter {
/**
* 获取所有的android干货
*
* @param count
* @param page
*/
void subscribeAndroidGank(int count, int page);
}
interface View extends BaseView<Presenter> {
/**
* 展示android干货
*
* @param gankList
*/
void showAndroidGank(List<Gank> gankList);
}
}
2016/9/5:新增实现类,减少模板代码
public class PresenterAdapter implements BasePresenter {
protected CompositeSubscription mSubscriptions = new CompositeSubscription ();
@Override
public void unSubscribe() {
mSubscriptions.clear();
}
protected void addSubscription(Subscription subscription) {
mSubscriptions.add(subscription);
}
}
效果图
具体的代码细节以及RxJava与MVP的设计的结合,大家可以看GitHub上的源码,希望对大家有一些帮助.