From 5174331f5484d4a88436c5bf6454ef5502610482 Mon Sep 17 00:00:00 2001 From: sjsdfg <736777445@qq.com> Date: Mon, 24 Sep 2018 13:37:57 +0800 Subject: [PATCH] Update 01 --- 01. 考虑使用静态工厂方法替代构造方法.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/01. 考虑使用静态工厂方法替代构造方法.md b/01. 考虑使用静态工厂方法替代构造方法.md index c057def..ab457ac 100644 --- a/01. 考虑使用静态工厂方法替代构造方法.md +++ b/01. 考虑使用静态工厂方法替代构造方法.md @@ -25,7 +25,7 @@ public static Boolean valueOf(boolean b) { 静态工厂方法从重复调用返回相同对象的能力允许类保持在任何时候存在的实例的严格控制。这样做的类被称为实例控制( instance-controlled)。编写实例控制类的原因有很多。实例控制允许一个类来保证它是一个单例 (3) 项或不可实例化的 (条目 4)。同时,它允许一个不可变的值类 (条目 17) 保证不存在两个相同的实例:当且仅当 `a == b` 时 `a.equals(b)`。这是享元模式的基础[Gamma95]。`Enum` 类型 (条目 34) 提供了这个保证。 -静态工厂方法的第三个优点是,与构造方法不同,它们可以返回其返回类型的任何子类型的对象。 这为你在选择返回对象的类时提供了很大的灵活性。 +**静态工厂方法的第三个优点是,与构造方法不同,它们可以返回其返回类型的任何子类型的对象。** 这为你在选择返回对象的类时提供了很大的灵活性。 这种灵活性的一个应用是 API 可以返回对象而不需要公开它的类。 以这种方式隐藏实现类会使 API 非常紧凑 I。 这种技术适用于基于接口的框架(条目 20),其中接口为静态工厂方法提供自然返回类型。