[一千个类] | 赋值联动

作者: 猫克杯 | 来源:发表于2017-05-10 11:58 被阅读107次
  • 关键词:联动
  • 本文约500字,建议阅读时间3分钟。
联动

各位程序员同学有没有过这样一种编程经验:当一个变量被重新赋值时,和它相关联的另外几个变量也需要跟着更新?不妨称这个变量为原生变量,称相关联的变量为这个原生变量的依赖变量

假定原生变量被更新的时候依赖变量的更新在逻辑上是必要的,你会不会考虑将这个必然的联动操作封装起来呢?基于原生变量可能在多个地方被更新这个前提,我会考虑做这件事。理由是:如果已经有多个地方修改了原生变量,同时也要求并且实现了联动操作,我们是可以预见可能还会有更多这样的地方出现的。这个时候问题就来了,为每一处联动操作的地方都书写同样一份代码是不是重复劳动呢?退一步讲,即使我们不害怕代码臃肿冗余,谁又能保证每一次动了原生变量都会记得执行联动操作呢?

因此,我们需要将这件事作为一个整体包裹起来,外部只需要更新最原始的那个触发点—原生变量,剩下的事则交由这个包裹的内部自动完成。以下是用于封装原生变量和联动逻辑的示例接口,供你参考。

/**
 *  赋值包装器,可为一个匿名引用在赋值时绑定特定的操作
 */
public class AssignmentWrapper<T> {
    private T value;

    /**
     * 赋值后置操作接口
     */
    public interface IOnAssigned {
        /**
         * 匿名引用被赋值时的后置操作
         *
         * @param value 匿名引用对象
         */
        void onAssigned(@Nullable Object value);
    }

    private IOnAssigned onAssigned;

    public AssignmentWrapper(IOnAssigned onAssigned) {
        this.onAssigned = onAssigned;
    }

    public void assign(T value) {
        this.value = value;
        onAssigned.onAssigned(value);
    }

    public T value() {
        return this.value;
    }
}

[一千个类] 立个flag,从今天开始,编程这件小事,会多一处分享的去所。有兴趣的朋友可以关注后续。

相关文章

  • [一千个类] | 赋值联动

    关键词:联动 本文约500字,建议阅读时间3分钟。 各位程序员同学有没有过这样一种编程经验:当一个变量被重新赋值时...

  • java 静态 new 对象

    一般情况下: Java中赋值顺序:父类的静态变量赋值自身的静态变量赋值父类成员变量赋值和父类块赋值父类构造函数赋值...

  • easyUI之给combobox静态赋值和动态赋值

    应用场景一 在标签中静态赋值:使用 , 标签 应用场景二 在datagrid中静态赋值: 联动并给datagri...

  • 【面向对象】基类和派生类运用

    1. 基本原则 (1)派生类对象可以向基类对象赋值。所谓赋值只是对数据成员赋值,对成员函数不存在赋值问题。赋值后基...

  • 2.3 KVC设计模式(给对象的属性赋值)

    KVC设计模式(给对象的属性赋值) dog类 App类 Person类 KVC设计模式(给对象的属性赋值.png

  • @Value 和 @PropertySource 注解

    @Value 注解赋值 直接给成员变量赋值 Person 类 在 Person 类中,为 name 字段和 age...

  • C++ - public继承的赋值兼容规则

    public继承的赋值兼容规则 派生类的对象可以赋值给基类对象 派生类对象可以初始化基类引用 派生类对象的地址可以...

  • 关于虚函数

    (1)派生类对象直接向基类赋值,赋值效果,基类数据成员和派生类中数据成员的值相同;(2)派生类对象可以初始化基类对...

  • 分析一个笔试题

    运行下面这段代码,会输出什么? 涉及的知识点:Java中赋值顺序: 父类的静态变量赋值自身的静态变量赋值父类成员变...

  • thinkphp3.1 二级联动菜单

    部门和责任人联动 ajax交互:点击获取部门id,传给后端,后端根据id查到数据,return,js再给select赋值

网友评论

    本文标题:[一千个类] | 赋值联动

    本文链接:https://www.haomeiwen.com/subject/trmwtxtx.html