mirror of
https://github.com/sjsdfg/effective-java-3rd-chinese.git
synced 2025-01-16 15:20:26 +08:00
Update 01
This commit is contained in:
parent
9c5f89ceae
commit
5174331f54
@ -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),其中接口为静态工厂方法提供自然返回类型。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user