java.time.LocalDate和java.time.ZonedDateTime是否应用了工厂模式

Rui*_*Rui 6 design-patterns java-8

在核心Java 8的日期和时间库中,即包中的那些类java.time,我发现了一个特殊的共同特征:在这个包的每个类中没有公共构造函数,因此所有类只能通过某些static方法实例化,例如of,now等等.从这个意义上说,里面的java.time类似于工厂设计模式.然而,这样的类也不同于工厂设计模式在本质工厂设计模式是松耦合代码以实例化各种类型的对象与一个常用的方法(通常是static),因此,返回的对象实例的确定,直到类型运行.

但是,尤其是 在类java.time.LocalDatejava.time.ZonedDateTime,关键字工厂被提及.可以从以下位置找到关键字工厂:

所以,我想知道做java.time.LocalDatejava.time.ZonedDateTime应用工厂设计模式呢?如果没有,它们适用的设计模式是什么?

Ren*_*ink 2

我认为他们想要应用该规则

考虑静态工厂方法而不是构造函数

摘自Joshua Bloch所著的《Effective Java》一书。

该规则的目标是静态方法作为构造函数可以更具描述性,因为方法有名称。

例如:

ZonedDateTime.now();
Run Code Online (Sandbox Code Playgroud)

比更具描述性

new ZonedDateTime();
Run Code Online (Sandbox Code Playgroud)

是吗?

您可能还想阅读:Joshua Bloch #Item 1:考虑静态工厂方法而不是构造函数