静态类和单例类之间的区别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。 两者很少有用处。

静态类对于访问任何状态的辅助函数(例如MathEnumerable都很好。

我对状态单态的首选替代方法是通过依赖注入来注入单例。 这样你就不会围绕假设某件事是单身而建立你的代码。 但是恰好有一个例子。 因此,如果您将来需要多个代码,那么更改代码非常简单。

链接地址: http://www.djcxy.com/p/78817.html

上一篇: Difference between static class and singleton class c#

下一篇: PHP: Singleton vs Static Class