打字稿中的复合设计模式搜索

时间:2018-11-13 09:55:46

标签: angular typescript design-patterns

我有如下定义的模式:

ConditionInterface: Interface {
  getId(): string;
}

class FilterCompositeModel {
    condition: MultiConditionModel;

/**
  * Add a condition to a multiCondition
  *
  * @param {ConditionInterface} toAddCondition
  * @param {MultiConditionModel} parentCondition
  */
  public addCondition(toAddCondition: ConditionInterface, parentCondition: 
  MultiConditionModel): void {
     // Find parentCondition and add toAddCondition to it
  }
}

class MultiConditionModel implements ConditionInterface {
    id: string;
    elements: ConditionInterface[];

  getId(): string {
    return this.id;
  }
}

class SingleConditionModel implements ConditionInterface {
    id: string;

  getId(): string {
    return this.id;
  }
}

如果我们将其视为树的表示形式,则ConditionInterface是叶或节点。我的研究指出,只有搜索那些对我没有帮助的节点的人。

我如何实现addCondition作为递归函数来搜索所有子节点?我不知道该怎么做。

0 个答案:

没有答案