码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式(Singleton)

时间:2020-02-29 12:50:45      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:unique   打印机   注册   最简   nbsp   注册表   font   时间   bsp   

2020/02/29

单例模式(Singleton):用来创建独一无二的,只能有一个实例的对象的入场券。

单例模式是所有模式的例图中最简单的!

使用单例模式的场景

  线程池(threadpol)、缓存(cache)、对话框、处理偏好设置和注册表(registry)对象、日志对象、充当打印机、显卡等设备的驱动程序的对象。


 

如果制造出多个实例,就会导致许多问题的产生,如

  程序的行为异常、资源使用过量,或者是不一致的结果。


 

单例模式的优点

  单例模式是经得起时间考验的方法,可以确保只有一个实例会被创建;

  单例模式也给了我们一个全局的访问点,和全局变量一样方便,又没有全局变量的缺点。


 

全局变量的缺点

   如果将对象赋值给一个全局变量,那么你必须在程序一开始就创建好对象★。万一这个对象非常耗费资源,而程序在这次的执行过程中又一直没有用到它,就形成了浪费。

  代理模式可以在需要时才创建对象。

★这其实和实现有关。有些这个JVM的实现是在用到的时候才创建对象。


 

剖析经典的单例模式实现:

 

public class Singleton {
    private static Singleton uniqueInstance; //利用一个静态变量来记录Singleton类的唯一实例。
    //这里是其他的有用实例化变量
    private Singleton() {} //把构造器声明为私有的,只有在Singleton类内才可以调用构造器。
    public static Singleton getInstance() { //用getInstance()方法实例化对象,并返回这个实例。
        if (uniqueInstance == null) {
            uniqueInstance = new Singleton();    
        }
        return uniqueInstance;
    }
    //这里是其他方法。
    //当然Singleton是一个正常的类,具有一些其他用途的实例变量和方法。
}

单例模式(Singleton)

标签:unique   打印机   注册   最简   nbsp   注册表   font   时间   bsp   

原文地址:https://www.cnblogs.com/LinQingYang/p/12382248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!