我有一个算法,可以根据对列表进行的一些半随机修改,在每一代中改变对象的状态。为了更清楚我做了简化,所以假设我有两个类:
public class Archive{
...
}
public class Operation{
...
}
在另一个类中,Algorithm
,方法迭代,对 List<Operation>
进行一些调整(类似于遗传算法交叉和突变)。此列表与其他相关对象一起用于更新 Archive
对象,对 Archive
进行了大量的计算和修改目的。
在我的代码的当前版本中,我有一个 ArchiveUpdate
具有内部 Archive
的类对象和一个接收更新中使用的所有对象以更改存档的方法。我认为这种方式有点模糊,我想不出其他更好的方法,有人可以帮忙吗?
最佳答案
您是否考虑过使 Archive
不可变并提供基于现有存档返回新 Archive
实例的方法?也就是说,类似于:
public class Archive {
private final String field;
public Archive(String field) { this.field = field; }
public Archive changeField(String newField) { return new Archive(newField); }
}
如果您的对象都是不可变的,则更容易推断它们的状态,并且您不需要 ArchiveUpdate
类。然而,如果没有更多关于如何使用这些类的示例,我无法提出太多其他建议。
关于java - 每次算法迭代更新对象的最佳模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13714399/