单例设计模式
单例设计模式:
(1)饿汉式:
实现步骤:
① 私有化类的构造器;
② 内部创建类的对象;
③ 提供公共的静态方法,返回类的对象;
④ 要求此对象也必须声明为静态的。
例如:
class Bank{ //私有化类的构造器 private Bank(){} //内部创建类的对象,要求此对象也必须声明为静态的 private static Bank instance = new Bank(); //提供公共的静态方法,返回类的对象 public static Bank getInstance(){ return instance; } }
(2)懒汉式:
实现步骤:
① 私有化类的构造器;
② 声明当前类的对象,不初始化;
③ 提供公共的静态方法,返回类的对象;
④ 要求此对象也必须声明为静态的。
例如:
class Bank{ //私有化类的构造器 private Bank(){} //声明当前类的对象,不初始化,要求此对象也必须声明为静态的 private static Bank instance = null; //提供公共的静态方法,返回类的对象 public static Bank getInstance(){ if(instance == null){ instance = new Bank(); } return instance; } }
(3)饿汉式和懒汉式的区别:
饿汉式:
优点:线程安全。
缺点:对象加载时间过长。
懒汉式:
优点:延迟对象的创建。
缺点:线程不安全。
(4)应用场景:网站的计数器、应用程序的日志应用、数据库连接池、项目中读取配置文件的类、Application、Windows中的任务管理器、Windows的回收站等。
本文来自博客园,作者:萧若風,转载请注明原文链接:https://www.cnblogs.com/XiaoRuoFeng/p/16402136.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异