23种模式
单例模式:只存在一个对象实例,并且该类只提供一个取得其对象实例的方法。
若让他只产生一个对象,需要将类的构造方法访问权限设为private,这样就不能用new操作在类的外部产生类的对象,
但是在类的内部仍然可以产生该类的对象。导致该类对象的变量也必须定义成静态的。
饿汉式:
package com.aff.singleton; //单例模式:使得一个类只能够创建一个对象 public class TestSingleton { public static void main(String[] args) { Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); System.out.println(s1 == s2); } } // 只能创建Singleton的单个实例,饿汉式 class Singleton { // 私有化构造器,在内的外部不能够调用次构造器 private Singleton() { } // 在类的内部创建一个类的实例 private static Singleton instance = new Singleton(); // 私有化此对象,通过公共的方法调用 // 此公共的方法,只能通过类来调用, 因为设置为static,同时类的实例也必须为static声明的 public static Singleton getInstance() { return instance; } }
输出结果:
true