在我正在处理的应用程序的模型层中,我有一个Organization
类,它与一个类具有一对多的关系Person
。Person
对象可以具有许多不同的角色,这取决于它们与超类的另一组对象的一对多关系Certificate
。为了确定 aPerson
是否是“签字人”,我打电话给
public boolean isSignatory() {
return this.certificatesAsSignatory.size() > 0;
}
我想返回一个组织的签字人列表,所以我将遍历一组相关人员,检查签字人。我想做的是缓存结果,所以我不必每次都从数据库中重新生成数据。我添加了一个看起来像的private
字段Organization
private List<Person> signatories;
基本方法是这样的
public List<Person> getSignatories() {
for ( final Person person : this.people ) {
if ( person.isSignatory() ) {
this.signatories.add( person );
}
}
return this.signatories;
}
现在,当我调用方法返回列表时,我会将结果存储signatories
并返回。当它再次被调用时,我可以检查是否signatories
已经包含一个列表,并返回它而不是再次进行计算。
我的问题是:如何使签署者列表的缓存保持最新?