首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单例属性

单例属性
EN

Stack Overflow用户
提问于 2010-03-09 05:16:58
回答 6查看 27.6K关注 0票数 13

好吧,如果我创建了一个单例类,并通过一个公共静态属性公开了单例对象……我理解这一点。

但是我的单例类中还有其他属性。这些应该是静态的吗?这些也应该是私人的吗?

我只想通过这样做来访问我的单例类的所有属性:

代码语言:javascript
复制
MySingletonClass.SingletonProperty.SomeProperty2

其中SingletonProperty将返回单个单例实例。我想我的问题是,如何在单例class..make中公开它们的私有其他属性,然后通过您的公共单例静态属性访问它们?

或者单例的所有其他属性和方法都应该是公共的、非静态的?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-03-09 05:19:52

一旦获得了SingletonProperty (它是一个对象的单个实例),之后的任何东西都可以像创建一个要实例化的类一样实现,因为Singleton实际上是一个常规对象的单个实例。

例如,下面的Singleton (显然不是最好的Singleton设计,但请耐心听我说)提供了两个名为Value和Name的公共属性:

代码语言:javascript
复制
public class MySingleton
{
    private static MySingleton _instance;    

    private MySingleton() { }

    public static MySingleton Instance
    {
        get
        {
            if(_instance == null)
                _instance = new MySingleton();

            return _instance;
        }
    }

    // Your properties can then be whatever you want
    public string Value { get; set; }

    public string Name { get; set; }
}

访问这些属性将如下所示:

代码语言:javascript
复制
MySingleton.Instance.Name = "StackOverflow";

MySingleton.Instance.Value = "Rocks!";
票数 25
EN

Stack Overflow用户

发布于 2010-03-09 05:19:51

将它们设置为公共属性,就像其他任何类一样。使用单例模式将独立于此。

票数 2
EN

Stack Overflow用户

发布于 2010-03-09 05:20:11

只要它们不是静态的,您就需要一个对象实例来访问该属性。如果创建对象实例的唯一方法是通过单例模式,那么类属性本身就是单个类实例的一部分。不需要任何特殊的东西。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2404815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档