从功能上修改集合属性的最佳实践

时间:2014-07-27 18:27:34

标签: scala functional-programming immutability

我很好奇如何实现一个遵守严格的函数式编程规则的类。

例如,如果我有一个具有两个属性的类,并且我有一个修改它们的方法,那么我该怎么做呢?属性将是私有val,并且该方法必须在每次修改属性时返回该属性的新实例。这很好,除了我想保持它包含,这意味着我需要一种方法来设置val。

这样做的最佳方法是什么,以便我没有成千上万的说法,一个集合,在内存中浮动?

1 个答案:

答案 0 :(得分:0)

这是我的意见,但是;就像案例类一样,我会在类上实现一种copy方法,以便在保持不变性的同时进行修改,但是在某些情况下,我可以帮助它使它变得可变;例如,当某些东西被要求使复制操作过大而且对于类慢;比如当班级有这么多经常修改的成员。并且不用担心数以千计的实例在内存中浮动,因为它们是自动GC编写的,因此更实际的问题是复制类实例的时间成本。请告诉我,如果我的意见有点错误:)