请看标题中的问题!您会“注入(inject)”还是"new"比较器?如果规范中设置了元素的顺序并且很可能不会更改,您会新建它吗?
最佳答案
问题“我应该注入(inject)这种依赖吗?”真的是“引用对象应该知道这种依赖的性质吗?”。呃,只能否定。
如果你的类(class)是FastestPonyFinder
, 它需要对 List<Pony>
进行排序按速度,那么我会说它应该知道比较器。比较器需要按速度进行比较,排序最快的到链表头部;没有其他比较器适合这项工作。该对象应该创建比较器,就像它创建 List
一样.
如果你的类(class)是BestPonyFinder
,那么它可能应该注入(inject)比较器,因为构成“最佳”的定义与如何找到满足它的小马的定义是分开的。这将使您的代码更易于测试,并且将来更易于更改。
关于java - 比较器是可更新的还是可注入(inject)的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10667936/