哪里可以存储java流助手方法

时间:2016-12-10 14:33:16

标签: java java-8 java-stream code-design

哪里有存储函数的首选位置以提高流的可读性?

例如:

private BinaryOperator<Cash> sumPayments() {
    return (payment1, payment2) -> payment1.sum(payment2);
}

我不确定它是否应该在使用它的服务类中,但也许它会在许多地方,所以对一些额外的静态Utils有什么看法?还是在实体中?

1 个答案:

答案 0 :(得分:3)

尽可能避免不必要的辅助方法。

在这个特定的例子中,辅助方法可以很容易地用方法引用替换,方法引用(可以说是 more )可读:

Cash total = subtotals.stream().reduce(Cash.ZERO, Cash::sum);

在其他情况下,您确实需要帮助程序:考虑一年中搜索此类帮助程序方法的位置,当您必须根据新要求调整现在几乎不熟悉的代码时。

  • 与实体有关吗?把它放在实体类
  • 与商业逻辑有关吗?把它放入业务逻辑
  • 一般有用吗?将它放入实用程序类