在日期和时间包java.time
中,接口plus(TemporalAmount amount)
中的方法(尤其是minus(TemporalAmount amount)
和Temporal
)在LocalDate
中实现,{ {1}}和LocalTime
等。 OpenJDK 中的实现源代码非常简单。
以LocalTime.plus(TemporalAmount amount)
为例,该方法是通过调用参数LocalDateTime
的{{1}}方法实现的:
addTo
另一方面,当深入研究amount
中(LocalTime) amountToAdd.addTo(this)
方法的实现时,会调用addTo
参数的重载plus
方法:< / p>
Temporal
这似乎利用了一些设计模式。谁能告诉在上述实现中使用了哪种设计模式?或者它是几种设计模式的有点混合物?
答案 0 :(得分:2)
如果有的话我会说Strategy
会适用。因为从本质上讲,你说我将允许你提供一种执行差分计算的方法,我不关心它是如何完成的,然后你可以插入我们这里的附加装置(操作员) 。一种FP版本的战略(已经非常友好的FP)。