使用全局用户变量是一种不好的做法吗?

时间:2012-03-07 10:26:07

标签: flash flex security global-variables

我需要通过Flash应用程序访问登录用户。因此,我正在努力使“用户”变量成为全局变量。

我通常会尝试避免使用全局变量,但在这种情况下它似乎非常合适,而且我不是第一个将活动用户统一为全局变量的人。我知道像drupal这样的系统也为登录用户使用全局变量。

我想知道stackoverflow是否认为这是一种不好的做法,或者是否有更好的选择。

3 个答案:

答案 0 :(得分:2)

如果使用全局变量,则在使用它的所有模块中创建对该变量的依赖关系。因此,例如,如果您想在其他项目中重用任何这些模块,则需要考虑使用此全局变量。

话虽如此,我并没有特别发现为用户ID设置全局变量是不好的设计。如果您想重用任何使用它的模块,您仍然希望与用户打交道,并且可能也会在新应用程序中使用该全局变量。

有依赖注入框架可以为您解决此问题。它们是否会为您的特定项目增加价值取决于许多其他因素,这取决于您。

答案 1 :(得分:1)

如果您正在使用Robotlegs或PureMVC等MVC框架,则可以通过将用户对象放入“M”(模型),例如PureMVC的代理来解决您的问题。 这样您就不会创建全局变量本身,但是您可以获得它的所有优点,并且可以从应用程序的任何位置访问它。

答案 2 :(得分:0)

全局变量由处理器上的所有线程共享,这使得使用全局变量极易出错。要了解这是一个问题,请检查http://charm.cs.uiuc.edu/manuals/html/tcharm/2_1.html