纯代码的设计模式思考,怎么才更加合理呢?

  1. container 对象对外暴漏,Element是 Container的elements元素
  2. Element的color,disabled,isSelect 根据data计算得出
  3. Container 中的mode 属性变化的时候。会改变 Element的 color,disabled,isSelect计算规则
  4. container的模式mode可能拓展,并且计算Element样式的规则也可能比较复杂,可以通过什么模式或者增加什么对象来解决这个问题呢?

怎么组织代码会更加合理呢?

class Container {
    constructor () {
        this.mode = "" // 三种模式
        this.elements = [Element,Element,Element];
    }
    
    
    changeMode () {
    
    }
}


class Element {
    constructor (data) {
        this.data = data;
        this.color = "";
        this.disabled = "";
        this.isSelect = ""
    }
}
阅读 1.1k
1 个回答
class Container {
    mode = null;
    elements = [];
    changeMode (mode) {
        elements.map(item => item.changeMode && item.changeMode(mode)
    }
}

class Element {
    mode = null;
    constructor (data, mode) {
        this.data = data;
        this.changeMode(mode);
    }
    changeMode(mode) {
    }
}

个人觉得,就你的代码而言,Container应该表达如下内容:

  1. 我是容器
  2. 我有内容
  3. 我的内容听我指挥

Element表达内容为:

  1. 我就是我
  2. 我有我的属性
  3. 我有一定的变形能力
  4. 我变形的时候属性也会发生变化

而业务层表达则是根据当前需要,让Container告诉它的手下“变形”。至于手下怎么是否理解什么叫“变形”,怎么执行“变形”则是另一件事了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题