我看到使用全局变量的大多数异议都有意义,因为它们涉及多线程,线程安全等问题.
但是在一个小的,单线程的,非操作系统的情况下,你有什么异议?就我而言,如果重要的话,我正在用"C"编写我的嵌入式系统.我也是该产品的唯一开发人员.
为什么消除全局变量会使我的代码更好?
(在阅读了几个响应之后,我意识到我也应该指出这个系统没有动态内存分配(例如malloc).所有内存都是在编译时静态分配的.)
TL;DR:与 angular 无关的静态基本功能 - 实现为 AngularJS 服务还是普通的静态导出类/方法?
长版:我已经在 TS 中编程大约一个月了,因为我们正在重构我们的应用程序以使用 TS(为 angular 2.0 做准备)。当开始了解我们的一些基本 Angular 服务时,我在想——因为实现静态类和方法很容易——也许我们的一些服务根本不应该是服务。当然,以某种方式与角度有关的任何功能都必须作为服务来实现。例如,ColorConverter 或 ColorPicker——今天我们应用程序中的 angularjs 服务实现了不会改变或与 angular 或任何共享外部资源有关的静态逻辑——可以很容易地替换为导出静态函数的静态模块。我办公室里有人提出支持 Angular 服务的一个论点是,稍后我们可以轻松地嘲笑这个逻辑。但是为什么我要模拟不会更改且不访问任何外部资源的静态逻辑?一分钱你的想法。