From baa0b51a133fb0d064589a2dd20b5d29ef59af60 Mon Sep 17 00:00:00 2001
From: CyC2018 <1029579233@qq.com>
Date: Fri, 16 Mar 2018 23:30:03 +0800
Subject: [PATCH] auto commit
---
notes/设计模式.md | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/notes/设计模式.md b/notes/设计模式.md
index 3016b936..cdfec950 100644
--- a/notes/设计模式.md
+++ b/notes/设计模式.md
@@ -501,7 +501,7 @@ CheesePizza
在简单工厂中,创建对象的是另一个类,而在工厂方法中,是由子类来创建对象。
-下图中,Creator 有一个 anOperation() 方法,这个方法需要用到一组产品类,这组产品类由 factoryMethod() 方法创建。该方法是抽象的,需要由子类去实现。
+下图中,Creator 有一个 anOperation() 方法,这个方法需要用到一组产品对象,这组产品对象由 factoryMethod() 方法创建。该方法是抽象的,需要由子类去实现。
@@ -617,7 +617,7 @@ ChicagoStyleCheesePizza is making..
**1. 模式定义**
-提供一个接口,用于创建 **相关的对象家族** ,而不需要明确指定具体类。
+提供一个接口,用于创建 **相关的对象家族** 。
**2. 模式类图**
@@ -627,7 +627,7 @@ ChicagoStyleCheesePizza is making..
至于创建对象的家族这一概念是在 Client 体现,Client 要通过 AbstractFactory 同时调用两个方法来创建出两个对象,在这里这两个对象就有很大的相关性,Client 需要同时创建出这两个对象。
-从高层次来看,抽象工厂使用了组合,即 Cilent 组合了 AbstractFactory ,而工厂模式使用了继承。
+从高层次来看,抽象工厂使用了组合,即 Cilent 组合了 AbstractFactory,而工厂模式使用了继承。
@@ -760,7 +760,7 @@ MarinaraSauce
**3. 懒汉式-线程不安全**
-以下实现中,私有静态变量被延迟化实例化,这样做的好处是,如果没有用到该类,那么就不会实例化私有静态变量,从而节约资源。
+以下实现中,私有静态变量 uniqueInstance 被延迟化实例化,这样做的好处是,如果没有用到该类,那么就不会实例化 uniqueInstance,从而节约资源。
这个实现在多线程环境下是不安全的,如果多个线程能够同时进入`if(uniqueInstance == null)` ,那么就会多次实例化 uniqueInstance。
@@ -831,7 +831,7 @@ public class Singleton {
}
```
-考虑下面的实现,也就是只使用了一个 if 语句。在 uniqueInstance == null 的情况下,如果两个线程同时执行 if 语句,那么两个线程就会同时进入 if 语句块内。虽然在 if 语句块内有加锁操作,但是两个线程都会执行 `uniqueInstance = new Singleton();`这条语句,只是早晚的问题,也就是说会进行两次实例化,从而产生了两个实例。因此必须使用双重校验锁,也就是需要使用两个 if 判断。
+考虑下面的实现,也就是只使用了一个 if 语句。在 uniqueInstance == null 的情况下,如果两个线程同时执行 if 语句,那么两个线程就会同时进入 if 语句块内。虽然在 if 语句块内有加锁操作,但是两个线程都会执行`uniqueInstance = new Singleton();`这条语句,只是早晚的问题,也就是说会进行两次实例化,从而产生了两个实例。因此必须使用双重校验锁,也就是需要使用两个 if 判断。
```java
if (uniqueInstance == null) {
@@ -962,7 +962,7 @@ Light is on!
**2. 模式类图**
-适配器类(Adapter)组合一个待适配的对象(Adaptee),Adapter 把操作委托给 Adaptee。
+适配器(Adapter)组合一个适配者(Adaptee),Adapter 把操作委托给 Adaptee。
@@ -1180,11 +1180,11 @@ Tea.addCondiments
**2. 模式类图**
-- Aggregate 是聚合类,其中 createIterator() 方法可以产生一个 Iterator 对象;
+- Aggregate 是聚合类,其中 createIterator() 方法可以产生一个 Iterator;
- Iterator 主要定义了 hasNext() 和 next() 方法。
-- Client 组合了 Aggregate 对象,为了迭代遍历 Aggregate 对象,也需要组合 Iterator 对象。
+- Client 组合了 Aggregate,为了迭代遍历 Aggregate,也需要组合 Iterator。