单例设计模式

x33g5p2x  于2022-03-06 转载在 其他  
字(0.7k)|赞(0)|评价(0)|浏览(327)

1.概念

保证一个类只有一个对象,并提供一个访问它的全局访问点

2.饿汉模式

  1. package com.yl.demo.design;
  2. //饿汉模式
  3. public class SingleTon1 {
  4. private SingleTon1(){}
  5. private static SingleTon1 singleTon1 = new SingleTon1();
  6. public static SingleTon1 getInstance(){
  7. return singleTon1;
  8. }
  9. }

3.懒汉模式

  1. package com.yl.demo.design;
  2. //懒汉模式
  3. public class SingleTon2 {
  4. private SingleTon2(){}
  5. public static SingleTon2 singleTon2 = null;
  6. public static SingleTon2 getInstance(){
  7. if (singleTon2 == null) {
  8. singleTon2 = new SingleTon2();
  9. }
  10. return singleTon2;
  11. }
  12. }

4.线程安全的懒汉模式

  1. package com.yl.demo.design;
  2. //线程安全的懒汉模式
  3. public class SafeSingleTon {
  4. private SafeSingleTon(){}
  5. private static SafeSingleTon safeSingleTon = null;
  6. public static SafeSingleTon getInstance(){
  7. if (safeSingleTon == null) {
  8. synchronized(SafeSingleTon.class) {
  9. safeSingleTon = new SafeSingleTon();
  10. }
  11. }
  12. return safeSingleTon;
  13. }
  14. }

相关文章