gpt4 book ai didi

java - 静态工厂方法和模拟

转载 作者:搜寻专家 更新时间:2023-10-31 20:10:00 25 4
gpt4 key购买 nike

您如何协调使用静态工厂方法和模拟?

很多人会说:不要使用静态工厂方法,而是使用 DI。

嗯,有时您无法避免使用静态工厂方法。考虑以下用例,这些用例应该很熟悉:

假设您有一个名为 Option 的类,就像在 scala 中一样。如果您想为所有缺失的值重用相同的实例,则无法避免使用静态工厂方法。

一旦你进入new Option(null),你就创建了一个新的选项对象,你不能一遍又一遍地返回同一个对象。

类似的用例是 Integer.valueOf(),它将重用小于 128 的值的整数对象。如果不使用静态工厂方法是不可能做到的。

另一个优点是工厂方法比 new 关键字更具描述性。

那么你们如何处理必须使用静态工厂方法,同时又想使用继承和模拟的问题?

谢谢。

最佳答案

既然是理论题,那我就做个理论上的回答吧。工厂范式是另一个理论的构建点:注入(inject)。如果您创建的对象在需要时被注入(inject),那么您只需注入(inject)模拟对象即可完成所有测试。有很多好书/网页可以帮助您开始这方面的工作。

关于java - 静态工厂方法和模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34025131/

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