【问题标题】:Global Variable Access Solution Ideas全局变量访问解决方案思路
【发布时间】:2008-11-10 07:24:31
【问题描述】:

我有一个初始化类,可以将内容预加载到变量(可能是列表或数组)中。这个初始化类只有一个实例,但是会有很多类需要访问预加载的内容。

问题是它们中没有多少是相关的,并且它们都没有扩展我的初始化类。我想了想,决定使用静态方法和变量。所以像这样......

public class InitClass
{
     static List PreloadedContent;

     static ModelData GetContent(String ContentName)
     {
          //return the preloaded content that matches given name
     }
}

根据情况的要求,预加载的内容有时会缩小或增大。然而,我遇到过这样的情况是唯一看起来不错的解决方案;我认为这是一个丑陋的解决方案。

注意:由于各种原因,我无法将数据加载到创建时需要它的类中——其中大部分是我还不知道的原因,但很可能会出现。某些类将根据场景的渲染加载/卸载,而我的 InitClass 大部分时间都不会处理这些对象的创建。

谁能给我一个更好的解决方案?

【问题讨论】:

    标签: c#


    【解决方案1】:

    你正在做的事情被称为singleton。以下是之前对此的一些讨论:

    【讨论】:

      【解决方案2】:

      为了避免静态/全局范围,您可以使用某种注册表类。这意味着您有一个在程序启动时初始化的类。此类包含对需要全局访问的所有其他类的引用。 现在您将注册表类的初始化实例传递给应用程序中的所有实例。 这不是一个非常漂亮的解决方案,但对我来说它是最好的。使用静态和全局变量,我在测试或调试代码时总是会遇到一些问题。

      另一种方法是使用单例。因为他们也只是持有一个静态实例,我不喜欢他们。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-11
        • 1970-01-01
        相关资源
        最近更新 更多