单例模式: 保证一个类只有一个实例。
懒汉式单例:
public class LazySingleton {
private static LazySingleton instance = null;
private LazySingleton() {
}
public static LazySingleton getInstance() {
if (instance == null) {
instance = new LazySingleton();
}
return instance;
}
}
双重锁定:
public class MultiThreadSingleton {
private static MultiThreadSingleton instance = null;
private static Object lock = new Object(); // 锁旗标
private MultiThreadSingleton() {
}
public static MultiThreadSingleton getInstance() {
if (instance == null) {
synchronized (lock) {
if (instance == null) {
instance = new MultiThreadSingleton();
}
}
}
return instance;
}
}
// 不用让线程每次都加锁,而只是在实例未被创建的时候再加锁处理,同时保证多线程的安全,这种做法叫双重锁定.
饿汉式单例:
public class HungrySingleton {
private static HungrySingleton instance = new HungrySingleton();
private HungrySingleton() {
}
public static HungrySingleton getInstance() {
return instance;
}
}
饿汉式单例:静态初始化,即类一加载就实例化对象,所以要提前占用系统资源。
懒汉式单例:面临多线程访问的安全性问题,需要做双重锁定才能保证安全,但性能会受一定影响。
分享到:
相关推荐
单例模式是软件设计模式中的一种经典模式,它在许多场景下被广泛使用,尤其是在需要全局唯一实例的情况下。本文将深入探讨单例模式的概念、作用、实现方式以及其在实际编程中的应用。 单例模式的核心思想是确保一个...
Android之大话设计模式——:抽象工厂模式借鉴.pdf
单例模式 结构型模式 队列模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 行为模式(类行为模式) 解释器模式 模板方法模式 行为模式(对象行为模式) 策略模式 观察者模式 状态模式 导入模式 迭代器...
Android之大话设计模式——:抽象工厂模式参考.pdf
大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf
设计模式之《大话设计模式》.pptx
《大话设计模式》C++实现-design-patterns-cpp
大话设计模式 完整设计模式介绍
读书笔记:大话设计模式C++
android之大话设计模式.pdf
《大话设计模式》对各种设计模式,做简要归纳(原创)
3. 单一职责原则:类设计时尽量保证,单一类只做一件相关性事情。这意味着在设计模式中,每个类和模块都应该有明确的责任和职责,避免类和模块之间的混淆和重叠。 4. 迪米特法则:尽量少暴露类的成员变量,保持类的...
2. 单例模式:确保一个类只有一个实例,并提供全局访问点,常用于配置管理或者数据库连接。 3. 观察者模式:定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动...
大话设计模式之外观模式 经典代码 C#类
树懒自己整理的大话设计模式的修行笔记,对程序设计有很大的帮助,主要是以自己学习的习惯整理的!
读书笔记:设计模式大话设计模式
android之大话设计模式整理.pdf
- **单例模式**:确保一个类只有一个实例,并提供一个全局访问点。在.NET中,常用于控制资源管理,如数据库连接。 2. **结构型模式**: - **代理模式**:为其他对象提供一种代理以控制对这个对象的访问。在.NET中...
大话设计模式源代码之简单工厂模式 经典代码
读书笔记:设计模式学习《大话设计模式》