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

 

你可能感兴趣的:(单例设计模式)