单例设计模式

    xiaoxiao2022-07-06  211

    单例设计模式

    1.定义

    单例设计模式指任何类的对象只有一个

    1.1 如何实现单例设计模式模式

    思想:一个类只能实例化一个对象 控制对象的产生数量 ,将构造你方法私有(从源头控制对象数量),使类的外部不可调用构造方法。

    步骤:

    1.构造方法私有化,使其他类均无法产生此类对象;

    2.唯一对象产生与类内部,类内部提供一个实例化好的对象,并用private修饰 (类内部提供静态对象);

    3.唯一的属性为静态属性(静态原因是为了可以取出使用),并且类中提供静态方法取得此对象 (类的外部无法产生对象因此无法调用对象方法)

    2.饿汉单例模式

    package JAVASE.Singleton; /** * @Name:饿汉单例模式 * @Author:ZYJ * @Date:2019-05-10-20:57 * @Description: */ public class SingletonDemo1 { public static void main(String[] args) { Singleton singleton1 = Singleton.getInstance(); Singleton singleton2 = Singleton.getInstance(); System.out.println(singleton1==singleton2); } } class Singleton { private Singleton(){}//声明构造方法 private static Singleton singleton = new Singleton(); public static Singleton getInstance(){ return singleton; } }

    3. 懒汉单例模式

    package JAVASE.Singleton; /** * @Name:懒汉单例模式 * @Author:ZYJ * @Date:2019-05-10-21:02 * @Description: */ public class SingletonDemo2 { public static void main(String[] args) { Singleton2 singleton1 = Singleton2.getSingleton(); Singleton2 singleton2 = Singleton2.getSingleton(); System.out.println(singleton1==singleton2); } } class Singleton2{ private Singleton2(){}; private static Singleton2 singleton ; public static Singleton2 getSingleton(){ if(singleton==null){ singleton=new Singleton2(); } return singleton; } }

    注意事项:

    懒汉式:用时再new 在多线程下可能产生不止一个对象,存在线程安全问题;

    饿汉式:上来就new ;

    最新回复(0)