singleton单例模式
模式 单例 Singleton
2023-09-14 08:58:30 时间
单例设计模式
单例设计模式概述
单例模式就是要确保类在内存中只有一个对象,该实例必须自动创建,并且对外提供
优点:
在系统内存中只存在一个对象,因此可以解决系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能
缺点:
没有抽象层,因此扩展很难
职责过重,在一定程度上违背了单一职责
package com.singleton; /* * 单例模式的思想: * 内存中只能有一个该对象 * 分析: * 只能有一个对象,说明不能对外提供构造 * 对象只能由自己提供 * 外界怎么访问到你的方法呢?不能实例化你对象。所以获得方法是静态 * 方法静态所以属性也必须静态,但是属性不能直接被外界拿到啊。所以属性加私有 * * 现在这种单例模式称为饿汗式 * 表现在:这个类还没使用就创建了一个需要的而对象。 */ public class Student { private Student(){ } private static Student s=new Student(); public static Student createInstance(){ return s; } } package com.singleton; public class StudentDemo { public static void main(String[] args) { Student s=Student.createInstance(); Student s1=Student.createInstance(); System.out.println(s1==s); System.out.println(s1); System.out.println(s); } } package com.singleton; /* * 懒汉式 * 表现在: * 1、延迟加载(需要的时候才创建对象) * 2、线程不安全,通常需要加上一下同步锁 */ public class Teacher { private Teacher(){ } private static Teacher t=null; public static synchronized Teacher createInstance(){ if(t==null){ t=new Teacher(); } return t; } } package com.singleton; public class TeacherDemo { public static void main(String[] args) { Teacher t=Teacher.createInstance(); Teacher t1=Teacher.createInstance(); System.out.println(t==t1); System.out.println(t1); System.out.println(t); } } 单例模式例子: package com.singleton; import java.io.IOException; /* * Runtime * 这个类是单例模式 * 一个exec(String command)可以执行dos命令 * */ public class RuntimeDemo { public static void main(String[] args) throws IOException { Runtime r=Runtime.getRuntime(); // 打开计算器 r.exec("calc"); //打开记事本 r.exec("notepad"); // r.exec("shutdown -s -t 10000"); r.exec("shutdown -a"); } }
相关文章
- Java笔记:单例模式
- one-to-all及all-to-all网络通信模式
- Python之单例模式的多种实现
- 【华为云技术分享】【极客思考】设计模式:你确定你真的理解了单例模式吗?
- 解决 PhpStorm 对 用单例模式实例化PHP类时,代码自动提示功能失效 的问题
- 炒冷饭系列:设计模式 单例模式
- TF 设置GPU模式训练
- 独领风骚:单例模式
- 不一样的单例模式(设计模式九)
- 突发奇想 应用商店的会员模式
- 设计模式(二)单例模式Singleton(创建型)
- 《设计模式之禅》--单例扩展:多例模式
- 【java设计模式】之 单例(Singleton)模式
- 38. 如何让 ABAP 报表在后台作业的模式下运行
- 如何写出更好的Java单例(Singleton)模式,以及单例模式的攻防源代码
- 几种用JavaScript实现的单例模式(Singleton Design Pattern)
- 单例模式及常见写法分析(设计模式01)
- Android kotlin 设计模式(单例模式,建造者模式,代理模式)
- C++设计模式解析之单例模式解析
- 为什么要用枚举实现单例模式(避免反射、序列化问题)
- spdlog单例模式封装
- 策略模式
- 状态模式
- 看完这篇<单例模式>介绍,面试官通知我第二天来上班(下)
- 单例模式
- 单例模式
- 设计模式(Python语言)----单例模式
- Pentaho Kettle 8.1 使用 Mysql 8.0 开启 Reposity 模式
- Docker 的4种网络模式
- 设计模式----建造者模式
- MVC模式和三层架构
- 【设计模式】抽象工厂方法模式