响应式编程的一点小感悟

编码的时候,经常遇到的情况,就是一个字段变化后,需要做一些相应的变化,比如更新界面。这个时候如果在各个更改这个字段的地方去添加更新界面的代码,其实很不优雅,而且很容易有漏掉的时候。

这时候响应式思想就派上了用场,只需要对这个字段添加监听,只要这个字段更改就触发我的监听器,比如监听回调内容为更新界面,更新界面的方法也只需要在这个监听里面调用一次就好了。真的很干净,思路很清晰啊。

看看代码里咋做的吧。

背景:我现在有一个集合,我集合发生变化,我就要执行一些刷新操作。

首先,自己定义一个监听器。

/**
     * 数据修改的时候会触发
     */
    interface DataChangeListener {
        void update();
    }

然后,对集合做一层封装,然后构造的时候就要给一个监听回调DataChangeListener

 /**
     * 数据包裹
     */
    class DataWrap {
        private List<SimplePointInfo> pointList = new ArrayList<>();

        private DataChangeListener mDataChangeListener;

        public DataWrap(DataChangeListener dataChangeListener) {
            mDataChangeListener = dataChangeListener;
        }

        public void add(SimplePointInfo pointInfo) {
            pointList.add(pointInfo);
            mDataChangeListener.update();
        }
        public void removeLast() {
            if (!pointList.isEmpty()) {
                pointList.remove(pointList.size() - 1);
            }
            mDataChangeListener.update();
        }

        public void clear() {
            pointList.clear();
            mDataChangeListener.update();
        }

        public int size() {
            return pointList.size();
        }

        public boolean isEmpty() {
            return pointList.size() == 0;
        }

    }

这样,我在添加,删除操作这个数据的时候,就会响应式的触发我的监听回调,其实这也是观察者模式,java里面需要自己做这样一层数据的封装,kotlin里面已经做好了这个接口,u1s1,kotlin真的很好用,呜呜。 

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值