常用的软件设计模式(一)单例模式

单例模式:即一个类只有一个实例,在类里自己创建自己的实例。

优点:

(1)单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。

(2)因为类控制了实例化过程,所以类可以灵活更改实例化过程。尤其是在C++中,每次new都要delete,而是用单例模式可以避免忘记delete造成的内存泄漏,只在本类的内部delete实例就可以了

(3)方便对实例进行管理,减少重复的代码,减少内存开销

缺点:

(1)应为内部实例化的对象为静态全局变量,因此没有接口,不能继承

(2)与单一职责原则(这个之后会做详细介绍)冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。

该模式可以应用在很多编程语言上,这里以C#为例

//单例模式的一般实现
public class TxtManager
 {
    //私有对象记录唯一实例
   private static TxtManager instance;
 
   //让构造函数为 private,这样该类就不会被实例化
   private TxtManager(){}
 
   //获取唯一可用的对象的公有方法
   public static TxtManager getInstance()
   {
        if(null == instance)
        {
            instance = new TxtManager();
        }
      return instance;
   }
}


//调用
public class SingleDemo 
{
      //编译时错误:构造函数 SingleObject() 是不可见的
      //SingleObject object = new SingleObject();
 
      //获取唯一可用的对象
      TxtManager object = TxtManager.getInstance();
}

 

猜你喜欢

转载自blog.csdn.net/Chenrongsake/article/details/82867679