使用接口進行封裝以及數據傳輸

接口可以理解爲一個比較特殊的“類”,我們可以使用接口類型的變量調用接口中定義的方法,那麼我們可以使用接口對上行請求和下行消息的方法進行封裝,這樣就只能調用接口中定義的方法。
我們可以使用回調接口對數據進行傳輸,把返回的數據返回到合適的位置進行處理。

上行請求

類圖

這裏寫圖片描述
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 處理回調的數據
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章