静态类和单例类之间的区别c#
可能重复:
静态类和单例模式之间的区别?
我们使用静态类来进行常规操作。 同样的事情也可以做singleton类
在这里,我给两个一级是静态类,一个是单身类。 实际上对于我来说事情变得越来越困难,因为我们应该去静态课,当我们去单身课堂的时候。
public sealed class SiteStructure
{
/// <summary>
/// This is an expensive resource we need to only store in one place.
/// </summary>
object[] _data = new object[10];
/// <summary>
/// Allocate ourselves. We have a private constructor, so no one else can.
/// </summary>
static readonly SiteStructure _instance = new SiteStructure();
/// <summary>
/// Access SiteStructure.Instance to get the singleton object.
/// Then call methods on that instance.
/// </summary>
public static SiteStructure Instance
{
get { return _instance; }
}
/// <summary>
/// This is a private constructor, meaning no outsiders have access.
/// </summary>
private SiteStructure()
{
// Initialize members, etc. here.
}
}
static public class SiteStatic
{
/// <summary>
/// The data must be a static member in this example.
/// </summary>
static object[] _data = new object[10];
/// <summary>
/// C# doesn't define when this constructor is run, but it will likely
/// be run right before it is used.
/// </summary>
static SiteStatic()
{
// Initialize all of our static members.
}
}
请解释何时需要创建静态类和何时创建单例类。 谢谢
我的意见是:
静态类需要创建一个类,它可以像API基类一样操作,所以基本上它只是函数或常量集。 对于你的班级的用户来说,它基本上是关于缺少状态的 静态信号。
Singleton只是一个实例可以只有一个的类 ,并且您提供静态属性和私有默认构造函数(因为不应该让您的类用户创建对象应该这样做),这只是设计的结果 。
希望这可以帮助。
问候。
当你想将一个类实例化为一个对象时,你使用了一个单例,但是你一次只需要一个对象。
静态类不会实例化为对象。
经典( Class.Instance
)单例和具有静态可变状态的类都几乎同样不好的IMO。 两者很少有用处。
静态类对于访问任何状态的辅助函数(例如Math
或Enumerable
都很好。
我对状态单态的首选替代方法是通过依赖注入来注入单例。 这样你就不会围绕假设某件事是单身而建立你的代码。 但是恰好有一个例子。 因此,如果您将来需要多个代码,那么更改代码非常简单。
链接地址: http://www.djcxy.com/p/78817.html