Typescript 中的抽象类 v 单例 v 公共静态

tim*_*dit 0 javascript typescript

我已经从编码 Javascript 的功能风格转变为基于类的 Typescript 来工作。在某些情况下,我只需要一个实例/位置来实现某些功能,所以有时我会选择抽象类,而有时我会选择单例。我选择其中一个的原因有点武断和模糊,我同事的建议听起来也很模糊。

你什么时候会使用抽象类和单例类而不是具有公共静态方法和属性的常规类。实际示例和用例有助于决定何时使用哪个更好。

目前抽象和单身似乎与我非常相似,当涉及到创建只有一个的东西的情况时,但我选择后者的原因到现在为止只是因为我可以this.property用单身来做,而在抽象中它似乎是正确的仅使用abstractClassName.property哪个更详细。两者似乎都是集中状态的好选择,例如计时器项目的公共列表items[]

Ber*_*rgi 5

如果您不打算实例化一个类,请不要使用它。
如果您不打算扩展抽象类,请不要使用它。

普通对象更适合静态方法的集合。在 Typescript 中,您可能会使用命名空间或函数模块