防止状态泄漏Scala类

时间:2014-05-29 02:30:13

标签: scala

如果我必须设计这个,我可能不会使用可变状态但是处理来自另一个项目的以下代码。

class MyEntity{
  var addressKeyMap = new ConcurrentHashMap[Address,Int]().asScala 
  ....
}

在上面的代码片段中,MyEntity类正在泄漏其状态。在其他地方,它直接用作myEntity.addressKeyMap。为了在MyEntity类中包含状态,我可以使' addressKeyMap'作为私人,并有一个访问方法,复制' addressKeyMap'进入一个新的不可变映射。这是你如何保护国家的方法吗?

0 个答案:

没有答案