单例设计模式

2022/4/20 23:13:28

本文主要是介绍单例设计模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

 

 

只造一个对象(私有化类的构造器)

 

饿汉式:

 1 public class singletonTest {
 2     public static void main(String[] args) {
 3         Bank b1 = Bank.getinstance();
 4         Bank b2 = Bank.getinstance();
 5         System.out.println(b1 == b2);
 6     }
 7 }
 8 class Bank{
 9     //私有化类的构造器
10     private Bank(){
11 
12     }
13     //创建静态的、内部类的对象
14     private static Bank instance = new Bank();
15 
16 
17     //提供公共的、静态的方法,返回类的对象
18     public static Bank getinstance(){
19         return instance;
20     }
21 }

 

 

懒汉式:

public class singletonTest {
    public static void main(String[] args) {
        Bank b1 = Bank.getinstance();
        Bank b2 = Bank.getinstance();
        System.out.println(b1 == b2);
    }
}
class Bank{
    //私有化类的构造器
    private Bank(){

    }
    //只声明,不进行初始化
    private static Bank instance = null;
  
  //提供公共的、静态的方法,返回类的对象
    public static Bank getinstance(){
       if(instance == null){
      instance = new Bank();
    } 
    return instance;
    }
}

 

饿汉式和懒汉式的区别:

  饿汉式会在类加载的时候就创建对象,可能会导致对象的声明周期过长,会导致内存的浪费

  懒汉式相当于延迟创建对象,只有当需要的时候才创建,可以节省内存空间

 

  但从线程角度考虑,饿汉式线程会更加安全. 



这篇关于单例设计模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程