欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

单例设计模式

程序员文章站 2024-01-20 11:21:16
...

在某些场合中,一个类对外提供一个且只提供一个对象时,这样的类叫做单例类。编写单例类的模式/套路叫做单例设计模式,是编程经验的总结

实现流程

a.私有化构造方法,使用private关键字修饰。

b.提供本类的引用作为成员变量,并使用private和static共同修饰。

c.提供公有的get成员变量方法用于将本类对象返回出去。

编程实现Singleton类,要求该类对外能得到且只能得到一个对象
1. 饿汉式

public class Singleton{

   //2.提供一个本类的引用作为本类的成员变量,并初始化
   private static Singleton sin = new Singleton(); 

   //1.私有化构造方法,使用private关键字修饰,只能在本类中使用
   private Singleton(){} 

   //3.提供公有的get成员变量方法,用于将创建好的对象返回出去
   public static Singleton getInstance(){
       return sin;
   }  
}

2. 懒汉式

public class Singleton{
   private static Singleton sin = null; //懒汉式
   private Singleton(){} 
   public static Singleton getInstance(){
       if(sin == null){
           sin = new Singleton(); 
       }
       return sin;
   }  
}

对Singleton类的测试

public class TestSingleton{
    public static void main(String[] args){

        //Singleton s1 = new Singleton();
        //Singleton s2 = new Singleton();
        //System.out.println(s1 == s2); //false 

        Singleton s1 = Singleton.getInstance();
        Singleton s2 = Singleton.getInstance();
        System.out.println(s1 == s2); //true
    }
}
相关标签: 单例 设计模式