From fda671d5a1fba67070403975206823c4fc9b97a1 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Wed, 28 Oct 2026 03:19:54 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E8=AE=BE=E8=AE=A1=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=20=20-=20=E5=8D=95=E4=BE=8B.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 小节标题改为中文,重新绘制类图,统一重排序的术语,补充参考资料。 --- notes/pics/dp-singleton.png | Bin 0 -> 112844 bytes notes/设计模式 - 单例.md | 27 +++++++++++++-------------- 2 files changed, 13 insertions(+), 14 deletions(-) create mode 100644 notes/pics/dp-singleton.png diff --git a/notes/pics/dp-singleton.png b/notes/pics/dp-singleton.png new file mode 100644 index 0000000000000000000000000000000000000000..ba6f23850445315bd5b0905c94bad174f59ede24 GIT binary patch literal 112844 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 YbL=v={MuEb40xID++%dtz&Yyw0bqfOssI20 literal 0 HcmV?d00001 diff --git a/notes/设计模式 - 单例.md b/notes/设计模式 - 单例.md index 67c5f744..b0f62035 100644 --- a/notes/设计模式 - 单例.md +++ b/notes/设计模式 - 单例.md @@ -1,19 +1,16 @@ ## 单例(Singleton) -### Intent - +### 意图 确保一个类只有一个实例,并提供该实例的全局访问点。 -### Class Diagram - +### 类图 使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。 私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。 -

- -### Implementation +

+### 实现 #### Ⅰ 懒汉式-线程不安全 以下实现中,私有静态变量 uniqueInstance 被延迟实例化,这样做的好处是,如果没有用到该类,那么就不会实例化 uniqueInstance,从而节约资源。 @@ -105,9 +102,9 @@ uniqueInstance 采用 volatile 关键字修饰也是很有必要的, `uniqueIn 2. 初始化 uniqueInstance 3. 将 uniqueInstance 指向分配的内存地址 -但是由于 JVM 具有指令重排的特性,执行顺序有可能变成 1>3>2。指令重排在单线程环境下不会出现问题,但是在多线程环境下会导致一个线程获得还没有初始化的实例。例如,线程 T1 执行了 1 和 3,此时 T2 调用 getUniqueInstance() 后发现 uniqueInstance 不为空,因此返回 uniqueInstance,但此时 uniqueInstance 还未被初始化。 +但是由于 JVM 具有重排序的特性,执行顺序有可能变成 1>3>2。重排序在单线程环境下不会出现问题,但是在多线程环境下会导致一个线程获得还没有初始化的实例。例如,线程 T1 执行了 1 和 3,此时 T2 调用 getUniqueInstance() 后发现 uniqueInstance 不为空,因此返回 uniqueInstance,但此时 uniqueInstance 还未被初始化。 -使用 volatile 可以禁止 JVM 的指令重排,保证在多线程环境下也能正常运行。 +使用 volatile 可以禁止 JVM 的重排序,保证在多线程环境下也能正常运行。 #### Ⅴ 静态内部类实现 @@ -175,7 +172,7 @@ public enum Singleton { } ``` -```html +```text firstName secondName secondName @@ -186,16 +183,18 @@ secondName 该实现在多次序列化和反序列化之后,不会得到多个实例。而其它实现需要使用 transient 修饰所有字段,并且提供 readResolve() 方法。 -### Examples - +### 示例 - Logger Classes - Configuration Classes - Accessing resources in shared mode - Factories implemented as Singletons -### JDK - +### JDK 中的应用 - [java.lang.Runtime#getRuntime()](http://docs.oracle.com/javase/8/docs/api/java/lang/Runtime.html#getRuntime%28%29) - [java.awt.Desktop#getDesktop()](http://docs.oracle.com/javase/8/docs/api/java/awt/Desktop.html#getDesktop--) - [java.lang.System#getSecurityManager()](https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#getSecurityManager--) +## 参考资料 + +- 弗里曼. Head First 设计模式 [M]. 中国电力出版社, 2007. +- Gamma E. 设计模式: 可复用面向对象软件的基础 [M]. 机械工业出版社, 2007.