前言:本节是java伪代码
本章和第2章事务脚本示例相同,可以参考第2章。
在本章示例中,与第2章事务脚本最大的不同在于,每个类都有行为和数据。即使最简单的收入确认类也有一个简单的方法。
我们就从最简单的收入确认类RevenueRecognition开始:
class RevenueRecognition {
...
成员变量略;
public RevenueRecognition(Money amount, MfDate date) {
this.amount = amount;
this.date = date;
}
boolean isRecognizableBy(MfDate asOf){
return asOf.after(date) || asOf.equals(date);
}
}
合同类在 计算特定日期前已确认的收入额方法 时涉及 合同类和收入确认类。
class Contract {
...
//成员变量、构造方法 见后文
private List revenueRecognitions = new ArrayList();
public Money recognizedRevenue(MfDate asOf) {
Money result = Money.dollars(0);
Iterator it = revenueRecognitions.itor();
while(it.hasNext()){
RevenueRecognition