考虑是否有最佳实践。
似乎抽象方法在子类中实现时会产生更清晰的视觉界面。但是,似乎确实需要一些额外的代码样板
使用构造函数方法,您可以仅使用变量来指定唯一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();