Typescript和AngularJS – 静态方法与服务

TL; DR:静态基本功能,无需对angular执行任何操作 – 实现为AngularJS服务与纯静态导出类/方法?

长版本:我已经在TS中编程了大约一个月,因为我们正在重构我们的应用程序以使用TS(准备角度2.0).
当我开始经历一些基本的角度服务时,我在想 – 因为实现静态类和方法很容易 – 也许我们的一些服务根本不应该是服务.
当然,任何与角度有关的功能都必须以某种方式实现作为服务.
例如,ColorConverter或ColorPicker – 我们的应用程序中的angularjs服务实现了不改变或不与角度或任何共享外部资源有关的静态逻辑 – 可以很容易地用导出静态函数的静态模块替换.
我办公室的某个人提出角度服务的一个论点是,以后我们可以很容易地模仿这个逻辑.但为什么我要模拟不改变且不访问任何外部资源的静态逻辑?
佩妮为你的想法.

最佳答案
Java或其他语言的问题是相同的.静态方法很难扩展并模拟为什么你应该使用服务而不是静态方法.

例如,如果对ColorConverter使用静态方法,则无法扩展其在应用程序中所需的新功能的行为(支持另一种颜色或其他范围).

以下答案为其他适用于TypeScript的语言添加了一些元素.

Java static methods pros & cons

When to use static classes in C#

点赞