我需要通过Flash应用程序访问登录用户。因此,我正在努力使“用户”变量成为全局变量。
我通常会尝试避免使用全局变量,但在这种情况下它似乎非常合适,而且我不是第一个将活动用户统一为全局变量的人。我知道像drupal这样的系统也为登录用户使用全局变量。
我想知道stackoverflow是否认为这是一种不好的做法,或者是否有更好的选择。
答案 0 :(得分:2)
如果使用全局变量,则在使用它的所有模块中创建对该变量的依赖关系。因此,例如,如果您想在其他项目中重用任何这些模块,则需要考虑使用此全局变量。
话虽如此,我并没有特别发现为用户ID设置全局变量是不好的设计。如果您想重用任何使用它的模块,您仍然希望与用户打交道,并且可能也会在新应用程序中使用该全局变量。
有依赖注入框架可以为您解决此问题。它们是否会为您的特定项目增加价值取决于许多其他因素,这取决于您。
答案 1 :(得分:1)
如果您正在使用Robotlegs或PureMVC等MVC框架,则可以通过将用户对象放入“M”(模型),例如PureMVC的代理来解决您的问题。 这样您就不会创建全局变量本身,但是您可以获得它的所有优点,并且可以从应用程序的任何位置访问它。
答案 2 :(得分:0)
全局变量由处理器上的所有线程共享,这使得使用全局变量极易出错。要了解这是一个问题,请检查http://charm.cs.uiuc.edu/manuals/html/tcharm/2_1.html