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

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

 

相关文章:

  • 2021-12-18
  • 2021-12-23
  • 2021-11-07
  • 2021-04-25
  • 2021-06-02
猜你喜欢
  • 2021-06-24
  • 2022-01-30
  • 2021-09-02
  • 2021-08-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-19
相关资源
相似解决方案