上一篇,写到首页的布局,这一篇写首页接口以及接口的实现
首页接口及实现
首页接口分析
对于presenter,我们要定义接口,在创建的时候返回接口,这样子就不用暴露实现方式了。对于View层,可以直接通过Presenter的接口来调用具体的实现内容。
对于首页来说,只有一个功能,就是获取分类。
有同学说,那我们下面的内容怎么办呢?
下面的具体内容,根据分类来获取,交给特定的Presenter,分开来。
也可以写在一起,看具体怎么理解。
除了Presenter需要接口,我们也需要注册View的回调接口,用来通知UI。
对于首页的Presenter接口,我们叫IHomePresenter
View的更新接口叫做,IHomeCallbacak.
对于获取的分类,我们有这些状态
- 获取成功
- 获取失败(一般是网络原因)
- 内容为空
- 加载中
接口代码
IHomePresenter.java
public interface IHomePresenter {
/**
* 获取商品分类
*/
void getCategories();
/**
* 注册UI通知接口
*
* @param callback
*/
void registerViewCallback(IHomeCallback callback);
/**
* 取消UI通知的接口
*
* @param callback
*/
void unregisterViewCallback(IHomeCallback callback);
}
IHomeCallback.java
public interface IHomeCallback {
void onCategoriesLoaded(Categories categories);
void onNetworkError();
void onLoading();
void onEmpty();
}
Bean类 Categories
package com.sunofbeaches.taobaounion.model.domain;
import java.util.List;
public class Categories {
/**
* success : true
* code : 10000
* message : 获取分类成功.
* data : [{"id":9660,"title":"推荐"},{"id":9649,"title":"食品"}]
*/
private boolean success;
private int code;
private String message;
private List<DataBean> data;
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public int getCode