java—单例设计模式

单例设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

1、构造方法私有化

2、声明一个本类对象

3、给外部提供一个静态方法获取对象实例

什么时候使用?

1、通过在工具类的设计中使用;

2、当一个类中没有属性;

3、该类作为工具类使用非常频繁。

两种方式:

一、饿汉式

 1 package practice1;
 2 //单例模式
 3 public class Test7 {
 4     public static void main(String[] args) {
 5         Singleton s=Singleton.getInstance();
 6         s.method();
 7     }
 8 }
 9 class Singleton{
10     private static Singleton singleton=new Singleton();//定义时就创建对象
11     private Singleton(){//构造方法私有化    
12     }
13     public static Singleton getInstance(){//给外部提供一个全局访问点,静态方法
14         return singleton;
15     }
16     public void method(){//测试方法
17         System.out.println("method");
18     }
19 }

饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以是线程安全的。

 

二、懒汉式

class Singleton2{
    private static Singleton2 singleton2=null;//定义时不直接创建
    private Singleton2(){}//构造方法私有化
    public static Singleton2 getInstance(){
        if(singleton2==null){
            singleton2=new Singleton2();
        }
        return singleton2;
    }
    public void method(){//测试方法
        System.out.println("method");
    }
}

 

原文地址:https://www.cnblogs.com/chenxing818/p/4678332.html