使用接口进行封装以及数据传输

接口可以理解为一个比较特殊的“类”,我们可以使用接口类型的变量调用接口中定义的方法,那么我们可以使用接口对上行请求和下行消息的方法进行封装,这样就只能调用接口中定义的方法。
我们可以使用回调接口对数据进行传输,把返回的数据返回到合适的位置进行处理。

上行请求

类图

这里写图片描述
RequestManager类中实现IInvoke接口,接收上行的请求。同时此类也接收发送请求成功后返回的数据(方法onCallback()),我们通过ICallback回调接口把返回的数据发送到实现ICallback的地方。

代码

// 上行请求接口
public interface IInvoke {
    void requestMethod();
}
// 上行请求接口实现类
public class RequestManager implements IInvoke {

    // 声明一个下行回调的变量
    private ICallback callback = null;

    // 在构造方法中给下行回调变量赋值
    public RequestManager(ICallback back) {
        callback = back;
    }

    @Override
    public void requestMethod() {
        // TODO 处理上行请求
    }

    // 接收请求发送成功后返回的数据
    private void onCallback() {
        // 把接收到的数据通过回调接口发送出去
        if (callback != null) {
            callback.callbackMethod();
        }
    }
}

下行回调

类图

这里写图片描述
CallbackManager类实现了ICallback接口,在此类中通过request()方法来调用上行请求接口,也通过实现callbackMethod()回调方法来处理请求成功后返回的数据。

代码

// 下行回调接口
public interface ICallback {
    void callbackMethod();
}
// 下行回调接口实现类
public class CallbackManager implements ICallback {

    // 声明一个上行请求的变量
    private IInvoke invoke = null;

    public CallbackManager() {
        // 实例化了IInvoke的变量,同时也实例化了ICallback的变量。
        invoke = new RequestManager(this);
    }

    // 调用上行请求的方法
    public void request() {
        if (invoke != null) {
            invoke.requestMethod();
        }
    }

    // 回调方法
    @Override
    public void callbackMethod() {
        // TODO 处理回调的数据
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章