在我的应用程序的几个不同地方,我需要使用 aSeq[SalesRow]
并返回 a Map[String,SalesRow]
,其中的字符串是一个国家/地区的名称。
我需要在几个地方使用它。例如,我列出所有 SalesRows 并按国家/地区获得全球销售额细分。但在其他地方,我想按月和国家/地区细分我的销售额(这样Map[Month,Seq[SalesRow]]
就变成Map[Month,Map[String,Seq[SalesRow]]]
了)——在其他地方,我想按天细分,然后按国家/地区细分。
Seq[SalesRow]
我的问题是:我在哪里放置需要 a并将国家地图返回到行的(少量)逻辑?现在,我将它放在伴随对象方法中,SalesRow.byCountry(rows : Seq[SalesReport]
. 那是最优的吗?
我想到了一个稍微疯狂的想法,那就是创建一个从Seq[SalesRow]
to的隐式转换EnhancedSalesRowSeq
,它有一个byCountry
实例方法。这对我很有吸引力,因为该操作适用于任何 SalesRows 序列。
这是一个好主意吗?
将逻辑添加到伴生对象是我的最佳选择,还是有更好的选择?
谢谢。