其他分享
首页 > 其他分享> > 单例设计模式

单例设计模式

作者:互联网

 

 

 

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

 

饿汉式:

 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; } }

 

饿汉式和懒汉式的区别:

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

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

 

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

标签:饿汉,getinstance,instance,static,单例,设计模式,public,Bank
来源: https://www.cnblogs.com/zaiwo2014/p/16172066.html