单例模式有哪些具体实现方式?

更新于
2026-10-12 10:51:03
1阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计262个文字,预计阅读时间需要2分钟。

单例模式有哪些具体实现方式?

javapackage com.fast.DesignPattern.singleton;

/** * 单例模式的多种实现 * @author LUSHUIFA242 */public class UserDao {

单例模式有哪些具体实现方式?

private UserDao() {}

private static UserDao userDao=null;

public static UserDao getInstance() { if (userDao==null) { userDao=new UserDao(); } return userDao; }}

单例模式的各种实现

package com.fast.DesignPattern.singleton; /** * 单例模式的各种实现 * @author LUSHUIFA242 * */ public class UserDao { private UserDao(){}; private static UserDao userDao=null; public static UserDao getInstance(){ if (userDao == null) { userDao = new UserDao(); } return userDao; } /** * 加同步处理 * @return */ public static synchronized UserDao getInstance2(){ if (userDao == null) { userDao = new UserDao(); } return userDao; } /** * 双重检查锁定 * @return */ public static UserDao getInstance3() { if (userDao == null) { synchronized (UserDao.class) { if (userDao == null) { userDao = new UserDao(); } } } return userDao; } //============================静态内部类处理开始==================================== /** * 静态内部类处理 * @author LUSHUIFA242 * */ private static class LazyHolder { private static final UserDao INSTANCE = new UserDao(); } public static UserDao getInstance4() { return LazyHolder.INSTANCE; } //============================静态内部类处理结束==================================== //============================枚举内部类处理开始==================================== public static UserDao getInstance5(){ return Singleton.INSTANCE.getInstance(); } private static enum Singleton{ INSTANCE; private UserDao singleton; //JVM会保证此方法绝对只调用一次 private Singleton(){ singleton = new UserDao(); } public UserDao getInstance(){ return singleton; } } //============================枚举内部类处理结束==================================== public static void main(String[] args) { System.out.println(UserDao.getInstance()); System.out.println(UserDao.getInstance2()); System.out.println(UserDao.getInstance3()); System.out.println(UserDao.getInstance4()); System.out.println(UserDao.getInstance5()); } }

标签:各种

本文共计262个文字,预计阅读时间需要2分钟。

单例模式有哪些具体实现方式?

javapackage com.fast.DesignPattern.singleton;

/** * 单例模式的多种实现 * @author LUSHUIFA242 */public class UserDao {

单例模式有哪些具体实现方式?

private UserDao() {}

private static UserDao userDao=null;

public static UserDao getInstance() { if (userDao==null) { userDao=new UserDao(); } return userDao; }}

单例模式的各种实现

package com.fast.DesignPattern.singleton; /** * 单例模式的各种实现 * @author LUSHUIFA242 * */ public class UserDao { private UserDao(){}; private static UserDao userDao=null; public static UserDao getInstance(){ if (userDao == null) { userDao = new UserDao(); } return userDao; } /** * 加同步处理 * @return */ public static synchronized UserDao getInstance2(){ if (userDao == null) { userDao = new UserDao(); } return userDao; } /** * 双重检查锁定 * @return */ public static UserDao getInstance3() { if (userDao == null) { synchronized (UserDao.class) { if (userDao == null) { userDao = new UserDao(); } } } return userDao; } //============================静态内部类处理开始==================================== /** * 静态内部类处理 * @author LUSHUIFA242 * */ private static class LazyHolder { private static final UserDao INSTANCE = new UserDao(); } public static UserDao getInstance4() { return LazyHolder.INSTANCE; } //============================静态内部类处理结束==================================== //============================枚举内部类处理开始==================================== public static UserDao getInstance5(){ return Singleton.INSTANCE.getInstance(); } private static enum Singleton{ INSTANCE; private UserDao singleton; //JVM会保证此方法绝对只调用一次 private Singleton(){ singleton = new UserDao(); } public UserDao getInstance(){ return singleton; } } //============================枚举内部类处理结束==================================== public static void main(String[] args) { System.out.println(UserDao.getInstance()); System.out.println(UserDao.getInstance2()); System.out.println(UserDao.getInstance3()); System.out.println(UserDao.getInstance4()); System.out.println(UserDao.getInstance5()); } }

标签:各种