gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 07:15:59 25 4
gpt4 key购买 nike

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

但是,尤其是。在java.time.LocalDatejava.time.ZonedDateTime类中,提到了关键字factory。人们可以从以下位置找到关键字factory:

所以我想知道java.time.LocalDatejava.time.ZonedDateTime是否应用了工厂设计模式?如果没有,他们采用了什么设计模式?

最佳答案

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

Consider static factory methods instead of constructors

摘自本书Effective Java by Joshua Bloch .

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

例如:

ZonedDateTime.now();

更具描述性
new ZonedDateTime();

是吗?

您可能还想阅读:Joshua Bloch #Item 1: Consider static factory methods instead of constructors

关于design-patterns - java.time.LocalDate 和 java.time.ZonedDateTime 是否应用了工厂模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45585811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com