账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    将请求封装成对象好,还是直接调用好?
    46
    0

    问题描述

    一直有一个疑惑,就是将一个请求,封装成一个对象进行管理好,还是直接调用这个接口好?
    举个例子:
    比如我们有一个接口请求一个数据
    void requestData(int param, Callback callback);

    场景1:
    点击按钮,请求数据,展示数据
    那么直接使用一般比较简单。

    onClick(View v) {
        requestData(123, new Callback() {
            onCallback(String data) {
                someTextView.setText(data);     
            }
        });
    }

    场景2:
    如果一个界面,可以一个请求,发起多次,因为参数不同,数据会不一样,比如一个日历界面,请求1号,请求3号的数据,都是可以的,因为时间不同,数据不一样。
    这个时候,我觉得封装成一个对象比较好管理。

    class RequestDataSession implements Callback{
        void start(int time) {
            requestData(time, this);
        }
        
        onCallback(String data) {
            // do things.
        }
    }
    
    onDateSelect(int time) {
        RequestDataSession rds = new RequestDataSession();
        rds.start(time);
    }

    像上面这种情况,这样每个请求都是独立的,就便于管理。

    我觉得封装成对象比较好管理,因为我可以跟踪每个请求是否在请求中isReuqesting,也可以实现场景2这种不同参数的多个请求。
    场景1,其实是场景2的一个特例而已。

    但是最近有遇到一些需求,发现使用方法直接调用链式的写法,也比较好。

    就是当请求A回来后要调用请求B,请求B再调用请求C。这样如果我封装成对象来操作,就很难拆开,很难在里面加过程。

    但是如果直接方法调用,就比较方便。

    requestA(new CallbackA() {
        onA() {
             requestB(new CallbackB() {
                  onB() {
                       requestC(xxxx);
                  };
             });
        }
    })

    想听听大家的想法,探讨下这个写法问题

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部