只是为了添加一行代码而不是重写方法?

时间:2017-01-17 22:26:25

标签: javascript dry subclassing

我一次又一次地发生这种情况:我们的课程CLS采用init方式,如下所示:

init {
    // do A

    // do B

    // do C
}

现在,在某种情况下,我们需要在XB之间准确C。创建CLS的子类并重新编写整个init方法并插入X对我来说似乎不是一个好的解决方案(它与DRY相反),是否存在我没有想过更好的解决方案?

请注意,ABC是一些小代码片段,可以进行小调整,例如调整UI,因此将它们放在不同的方法中可能不是一个好主意。我目前正在用JavaScript编码,但我认为这个问题也适用于其他PL。

1 个答案:

答案 0 :(得分:3)

我们通常会在父类中添加钩子,我们期望扩展。我不记得它叫什么。也许这是template method pattern

    values    variableA  variableB  result
  0  134       1             3      231
  1  12        2             6      71
  2  43        1             2      231
  3  54        3             1      188
  4  16        2             7      71