iterator模式

当我在采用iterator模式的时候,集合当中的元素被改变了怎么办呢?

我的想法是建立一个数组的副本,但是感觉还是可能会出现数据不一致的问题。大家是怎么解决这个问题的呢?

2011年09月06日 20:08 "@mistbow"的内容
我的想法是建立一个数组的副本 ...

你需要给对数组的写上锁,这是关于线程锁的问题,使用原型克隆也可以,保持不变性原则,不过比较麻烦。

[该贴被banq于2011-09-07 18:09修改过]

若果源是可变的,为了获取当前状态(不变性),只能通过新建副本,而且克隆深度需到达不可变之前。

另外一个方法,是将源改为不可变。如原来是实体集合改为状态集合或值集合。