1.单例设计模式

简介

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

优点:

  1. 简单,全局只有一个一个对象,方便控制和修改属性。
  2. 从某种程度上说消耗资源少,毕竟只需要创建一次。

缺点:

  1. 单例设计模式虽然简单,但对于一些不严谨的代码容易出现内存泄露问题;例如:activity中创建一个内部类,作为一个单例对象的listener,如果在activity销毁时,没有将此listener置空,就会出现leak。
  2. 当然还有其它的问题,比如在activity的生命周期中有对单例对象进行操作,可能出现后面的activity执行了oncreate方法,前一个activity又执行到ondestory方法,当然这种情况是不适合使用单例模式的。

使用

单例设计模式的两个实现方式:

  • 饿汉式

    /// <summary>
    /// 饿汉模式
    /// </summary>
    public class Singleton
    {
      //私有的构造器
      private Singleton()
      {
      }
      //私有的静态实例
      private static Singleton instance = new Singleton();
    
      public static Singleton GetInstance()
      {
          return instance;
      }
    }
    
  • 懒汉式
    /// <summary>
    /// 懒汉模式
    /// </summary>
    public class Singleton2
    {
    //私有的构造器
    private Singleton2()
    {
    }

      //私有的静态实例
      private static Singleton2 instance = null;
    
      public synchronized static Singleton2 GetInstance()
      {
          if (instance==null)                
          {
              instance=new Singleton2();
          }
          return instance;
      }
    }
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容