单例模式,顾名思义,就是只有一个实例的模式,客户端仅能获取这个类得唯一一个实例。
类图:(待补充)
例子代码
例子1 预先实例化的单例模式
public class Singleton {
/**
* 预先实例化好了,也可以使用懒实例化,在构造函数中实例化,不过要注意线程同步的位码头
*/
private static Singleton singleton = new Singleton();
/**
* 私有构造函数
*/
private Singleton() {
}
/**
* 对外接口
* @return
*/
public static Singleton getInstance() {
return singleton;
}
}
例子2 懒实例化的单例模式
/**
* 使用懒加载方式
*/
public class Singleton2 {
private static Singleton2 singleton2 = null;
private Singleton2() {
}
/**
* 缺点是每次都要判断是否为null,而且同步浪费效率
*/
public synchronized static Singleton2 getInstance() {
if (singleton2 == null) {
singleton2 = new Singleton2();
}
return singleton2;
}
}
例子3 双重成例检查的单例模式
/**
* 使用双重成例检查的单例模式
*/
public class Singleton3 {
private static Singleton3 singleton3 = null;
private Singleton3() {
}
/**
* 只会判断一次null,效率高了,但是代码稍微复杂了一点
*/
public static Singleton3 getInstance() {
if (singleton3 == null) {
synchronized (Singleton3.class) {
if (singleton3 == null) {
singleton3 = new Singleton3();
}
}
}
return singleton3;
}
}
分享到:
相关推荐
本资源摘要信息是对《韩顺平_Java设计模式笔记.docx》的总结和分析,该笔记涵盖了 Java 设计模式的基础知识、设计模式的七大原则、原型设计模式、解释器设计模式、单例设计模式等内容,并对每个设计模式的原理、实现...
1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、类的关联、聚合和组合) 23种设计模式包括:创建型模式:单例模式(8种...
设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决问题的...设计模式笔记中的内容应该涵盖了以上所述的各种模式,通过深入学习和实践,你可以将这些模式应用到实际项目中,提升自己的编程技能和设计能力。
以上只是设计模式笔记中的一部分内容,实际上每个模式都有其特定的适用场景和优缺点。理解并熟练运用这些模式,可以提高代码的可读性、可维护性和复用性,降低系统复杂度,提升软件设计的质量。在实际项目中,应根据...
1. 单例模式:保证一个类只有一个实例,并提供全局访问点。 2. 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。 3. 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定...
在这个“设计模式之美”的学习笔记中,我们将探讨一些主要的设计模式,以及它们在实际开发中的应用。 首先,我们从创建型模式开始。这类模式主要用于对象的创建,如单例模式(Singleton)、工厂模式(Factory ...
《C++20设计模式》学习笔记-第5章单例模式
单例设计模式确保一个类只有一个实例,常见的实现方式有饿汉式、懒汉式、双重检查、静态内部类和枚举。每种方式都有其适用场景和优缺点,例如,枚举是线程安全且懒加载的推荐实现方式。 设计模式的重要性在于提升...
设计模式是软件工程中的一种重要思想,它是在特定情境下,为解决常见问题而提出的一套最佳实践。这些模式经过时间的验证,被广泛应用于各种软件开发中,以提高代码的可读性、可维护性和复用性。下面将详细探讨压缩包...
《HeadFirst设计模式学习笔记》是一份详尽的资料,旨在帮助读者深入理解并掌握设计模式这一编程领域的核心概念。设计模式是软件工程中的一种最佳实践,它在解决常见问题时提供了一种标准的解决方案,使得代码更易于...
此外,内容中提到的“单例模式”(Singleton pattern)是在软件工程中非常常见的一种设计模式,它用于确保一个类只有一个实例,并提供一个全局访问点。单例模式常常被用于管理共享资源,例如打印机的打印队列管理器...
### Head First 设计模式学习笔记知识点总结 #### 1. 欢迎来到设计模式世界:设计模式入门 - **业务场景**: - **需求背景**:开发一款模拟鸭子的游戏,游戏内包含多种不同种类的鸭子,每种鸭子具有不同的外观...
单例模式是软件设计模式中的一种,其核心思想是确保一个类在整个系统中只有一个实例存在。这在Java中尤其有用,因为多个实例可能导致资源浪费,比如内存占用过多,或者不同实例间的操作不一致。Java中的23种设计模式...
创建型设计模式关注的是对象的创建,如工厂方法、抽象工厂、建造者、原型和单例模式,它们分别处理不同程度的对象创建延迟和实例化过程。结构型模式则涉及如何组合类和对象,包括适配器、桥接、组合、装饰器、外观、...
近在学设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二...
设计模式Golang实现《研磨设计模式》读书笔记Go语言设计模式Go语言设计模式的实例代码创建模式工厂简单模式(Simple Factory)工厂方法模式(工厂方法)抽象工厂模式(Abstract Factory)创建者模式(Builder)原型...
总的来说,单例模式是设计模式中的一种基础模式,它在软件开发中广泛应用,能帮助我们更好地管理和控制对象的生命周期。不过,过度依赖单例也可能导致设计过于紧密,不利于单元测试和解耦,因此在使用时需要权衡利弊...
本笔记和代码集合涵盖了多种重要的设计模式,旨在帮助开发者编写更可维护、可扩展和可重用的JavaScript代码。 1. **工厂模式**:这是一种创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪一个...
这份由台湾作者编写的笔记,结合Java语言,为读者提供了一种深入理解并应用设计模式的方式。以下是对这些设计模式的详细解释: 1. **创建型模式(Creational Patterns)** 创建型模式关注于对象的创建过程,它们帮助...