第二章:单例模式(架构师之路)

一、什么是单例模式

  • 确保一个类仅有一个唯一的实例,并且提供一个全局的访问点

二、环境与问题

  • 单例模式要解决的问题---------独生子女
  • 在与硬件通信时常见的问题,如打印机,摄像头。如果每个使用者都new一个对象,在全用过程中就会出现并发或突然情况。

三、解决方案

  • 构造函数声明成私有类型,屏蔽通过直接实例化的形式来访问。
  • 控制全局人有一个实例的类-Static
  • 提供一个可以获得实例的方法,用于返回类的实例,并保证得到的是同一个对象。
  • 程序调用步骤

  • 具体的代码实现
    class Singleton
    {
        //1.构造方法设为私有,防止通过new关键字实例化创建多个对象
        private Singleton() {

        }
        //2.使用静态私有变量保证唯一的实例
        private static Singleton singleton;
        /// <summary>
        /// 3.对外公布一个获取实例的方法。
        /// </summary>
        /// <returns>singleton</returns>
        public static Singleton GetSingleton() {
            if (null == singleton)
            {
                singleton = new Singleton();
            }
            return singleton;
        }
    }
  • 代码优化简写
    class Singleton
    {
        //1.构造方法设为私有,防止通过new关键字实例化创建多个对象
        private Singleton() {

        }
        //2.使用静态私有变量保证唯一的实例
        private static Singleton singleton=new Singleton();
        /// <summary>
        /// 3.对外公布一个获取实例的方法。
        /// </summary>
        /// <returns>singleton</returns>
        public static Singleton GetSingleton()
        {
            return singleton;
        }
    }

四、小结

单例模式解决的问题是“独生子女

单例模式的解决方案是利用Static

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值