好吧,如果我创建了一个单例类,并通过一个公共静态属性公开了单例对象……我理解这一点。
但是我的单例类中还有其他属性。这些应该是静态的吗?这些也应该是私人的吗?
我只想通过这样做来访问我的单例类的所有属性:
MySingletonClass.SingletonProperty.SomeProperty2其中SingletonProperty将返回单个单例实例。我想我的问题是,如何在单例class..make中公开它们的私有其他属性,然后通过您的公共单例静态属性访问它们?
或者单例的所有其他属性和方法都应该是公共的、非静态的?
发布于 2010-03-09 05:19:52
一旦获得了SingletonProperty (它是一个对象的单个实例),之后的任何东西都可以像创建一个要实例化的类一样实现,因为Singleton实际上是一个常规对象的单个实例。
例如,下面的Singleton (显然不是最好的Singleton设计,但请耐心听我说)提供了两个名为Value和Name的公共属性:
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; }
}访问这些属性将如下所示:
MySingleton.Instance.Name = "StackOverflow";
MySingleton.Instance.Value = "Rocks!";发布于 2010-03-09 05:19:51
将它们设置为公共属性,就像其他任何类一样。使用单例模式将独立于此。
发布于 2010-03-09 05:20:11
只要它们不是静态的,您就需要一个对象实例来访问该属性。如果创建对象实例的唯一方法是通过单例模式,那么类属性本身就是单个类实例的一部分。不需要任何特殊的东西。
https://stackoverflow.com/questions/2404815
复制相似问题