gpt4 book ai didi

java - 只有一种实现的接口(interface)

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:41:08 25 4
gpt4 key购买 nike

使用 jmock 时,如果设置类冒名顶替者,则可以模拟具体类。我注意到类 Imposterizer 在遗留包中,所以我真的不想使用它(特别是因为使用我的 IDE 中的重构工具提取接口(interface)非常容易)。我也不喜欢有具体类的实例变量。

然而,在提取界面时,我注意到我的代码库中出现了一种模式。很多时候一个接口(interface)只有一个实现具体类。我更喜欢尽可能使用一个接口(interface),但是拥有所有这些额外的文件似乎真的很冗长。此外,每次我想向类中添加新方法时,更新接口(interface)和更新实现者有点乏味。

这只是您为适当的抽象付出的代价,还是有我没有想到的更好的方法?即使接口(interface)中只有 getter/setter,所有类都应该实现接口(interface)吗?

最佳答案

如果接口(interface)只有 getter 和 setter,这听起来更像是与数据有关,而不是行为 - 听起来不像是我想做的事情d mock 。我很乐意直接在其他类的测试中使用简单的生产代码。我只为提供服务的类注入(inject)依赖项。

我感受到你的痛苦,但我个人确实仍然编写界面,即使目前只有一个生产实现。在模拟了一段时间后,我经常会发现自己也编写了一个 stub 或伪造的实现。除非您真的对测试调用者与服务之间的交互感兴趣,否则假冒产品可以最终变得更易于使用(导致更清晰的测试)。

这也意味着当有人想要查看特定依赖项提供的方法时,他们可以看到不涉及实现的接口(interface)。

关于java - 只有一种实现的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6884162/

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