2014-05-09 54 views
-2

这里有两个类的代码,一个是单例,另一个是静态类。我喜欢在编程时理解什么时候应该使用静态类,何时应该使用Singleton类?静态类和单一类的主要区别是什么

两者都用于保存全局对象,因此我们可以在程序运行时从任何地方访问这些数据。适用范围广泛,适用寿命长。

1)我真的没有找到任何文章,可以指导我,当我应该使用静态类和单身类应该是不错的选择。我看到人们使用Singleton类管理数据库连接。

2)Singleton类&静态类的主要区别是什么?

public sealed class Singleton 
{ 
    private static Singleton instance = null; 
    private static readonly object padlock = new object(); 

    Singleton() 
    { 
    } 

    public static Singleton Instance 
    { 
     get 
     { 
      lock (padlock) 
      { 
       if (instance == null) 
       { 
        instance = new Singleton(); 
       } 
       return instance; 
      } 
     } 
    } 
} 

public static class TestStatic //: ITestSingleton 
    { 
     public static void doAction(string args) 
     { 
      Console.WriteLine("Test Static :: " + args); 
     } 
    } 

回答

0

使用静态修饰符声明的静态成员,属于类型本身,而不是一个特定对象。静态修饰符可以与类,字段,方法,属性,运算符,事件和构造函数一起使用,但不能与索引器,析构函数或类以外的类型一起使用。

使用,当你需要的是只有一个实例类,你需要提供一个全局访问点的情况下

+0

只是告诉我应用程序开发相关的情况,我应该使用静态类,当我应该使用单例类? – Thomas

+0

我使用单例主要用于数据库连接,如数据访问对象。 –

+0

*不能与索引器一起使用*捕捉到我的眼睛。足够单独使用静态类从单身已经。 – Sinatr

0

单身是basiccly切入点一类的一个实例。该类的实例可以作为参考传递给另一个方法。

静态类不具有此行为(只允许使用静态方法)。

相关问题