java设计模式-单例(singleton)

单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例

如何保证对象唯一性呢?

思想:

1,不让其他程序创建该类对象。

2,在本类中创建一个本类对象。

3,对外提供方法,让其他程序获取这个对象。

步骤:

1,因为创建对象都需要构造函数初始化,只要将本类中的构造函数私有化,其他程序就无法再创建该类对象;

2,就在类中创建一个本类的对象;

3,定义一个方法,返回该对象,让其他程序可以通过方法就得到本类对象。(作用:可控)

代码体现:

1,私有化构造函数;

2,创建私有并静态的本类对象;

3,定义公有并静态的方法,返回该对象。

实现单例模式有两种:一种是饿汉式,在对象需要使用之前提前实例化,二是懒汉式,先不创建实例,等其他对象调用是再实例化。

//饿汉式 
class Single{
   private Single(){} //私有化构造函数。 
   private static Single s = new Single(); //创建私有并静态的本类对象。 
   public static Single getInstance(){ //定义公有并静态的方法,返回该对象。 
    return s; 
    } 
  }
//懒汉式:延迟加载方式。 
    class Single2 {
        private Single2() {}
        private static Single2 s = null;
        public static Single2 getInstance() {
            if (s == null)
                s = new Single2();
            return s;
        }
    }

猜你喜欢

转载自www.cnblogs.com/wangbin2188/p/9008335.html