继承枚举最佳实践-抽象方法与构造函数参数?

时间:2020-04-02 17:06:30

标签: typescript oop design-patterns software-design

考虑是否有最佳实践。

似乎抽象方法在子类中实现时会产生更清晰的视觉界面。但是,似乎确实需要一些额外的代码样板

使用构造函数方法,您可以仅使用变量来指定唯一ID。但是,它要求您调用超级构造函数,否则,您不必(在此示例中)必须

只是想知道我是否缺少任何目标。因为两者都封装了子类中的不同内容。

// Enum
enum Id {
  A,
}

// Abstract class requiring subclasses to implement method returning their ID
abstract class Abstract_Method {
  abstract id(): Id;

  log() {
    console.log(this.id());
  }
}

// Abstract class requiring subclasses to call the super constructor and specify their ID
abstract class Abstract_Constructor {
  id: Id;

  constructor(id: Id) {
    this.id = id;
  }

  log() {
    console.log(this.id);
  }
}

// Child classes
class Child_Method extends Abstract_Method {
  id(): Id {
    return Id.A;
  }
}

class Child_Constructor extends Abstract_Constructor {
  constructor() {
    super(Id.A);
  }
}

// Test
new Child_Method().log();
new Child_Constructor().log();

0 个答案:

没有答案
相关问题