- container 对象对外暴漏,Element是 Container的elements元素
- Element的color,disabled,isSelect 根据data计算得出
- Container 中的mode 属性变化的时候。会改变 Element的 color,disabled,isSelect计算规则
- 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 = ""
}
}
个人觉得,就你的代码而言,
Container
应该表达如下内容:而
Element
表达内容为:而业务层表达则是根据当前需要,让
Container
告诉它的手下“变形”。至于手下怎么是否理解什么叫“变形”,怎么执行“变形”则是另一件事了。