java - 比较器是可更新的还是可注入(inject)的对象?

标签 java unit-testing dependency-injection tdd comparator

请看标题中的问题!您会“注入(inject)”还是"new"比较器?如果规范中设置了元素的顺序并且很可能不会更改,您会新建它吗?

最佳答案

问题“我应该注入(inject)这种依赖吗?”真的是“引用对象应该知道这种依赖的性质吗?”。呃,只能否定。

如果你的类(class)是FastestPonyFinder , 它需要对 List<Pony> 进行排序按速度,那么我会说它应该知道比较器。比较器需要按速度进行比较,排序最快的到链表头部;没有其他比较器适合这项工作。该对象应该创建比较器,就像它创建 List 一样.

如果你的类(class)是BestPonyFinder ,那么它可能应该注入(inject)比较器,因为构成“最佳”的定义与如何找到满足它的小马的定义是分开的。这将使您的代码更易于测试,并且将来更易于更改。

关于java - 比较器是可更新的还是可注入(inject)的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10667936/

相关文章:

java - 在 Java 中打开 Swing GUI 旁边的控制台

angularjs - 在 Angular 单元测试中按类使用 element.find()

asp.net-mvc-3 - 如何实现ViewModel类的依赖注入(inject)?

java - 如何在注入(inject)过程中包含命令行参数?

java - 遍历 List 但它只显示最后一项

java - 从 Android studio 导入项目时出现 Intellij Idea 错误

在我的类路径中选择了 Java 的默认 JAXB 实现

android - 是单元测试还是集成测试?

c# - 使用 Visual Studio 在 C# 中进行单元测试入门

asp.net-mvc - SignalR Hub ResolutionFailedException 与 Unity