写的第一个ddd的demo,大家看看我理解的对不对

account 是一个实体。有存款,取款俩个行为。
accountRepository 仓储类。有三个方法,新建账号,得到账号,更新账号。

有一个转账的业务。A到B。假设条件成立,A有足够的钱。

领域服务 是不是应该这么写?
public interface DomainService {
// 调用accountRepository的得到账号方法得到account 分别执行account的
存款,取款方法。然后调用accountRepository的更新账号方法
boolena transfer(String fromAccountId, String toAccountId,
BigDecimal amount)
}

应用层服务在调用领域层服务?要是转账成功就打印凭据。要是新建账号成功就打印凭据,
public interface ApplicationService {

// 这里调用领域层服务
boolean transfer(String fromAccountId, String toAccountId,

BigDecimal amount)

// 这里调用accountRepository的新建账号方法
Account createAccount(String accountId, BigDecimal balance);

// 这里调用accountRepository的得到账号方法
BigDecimal getBalance(String accountId);
}

我这样写对不?
那事务应该在那一层上? 领域层服务那层还是应用层服务那层?

2011年02月11日 15:27 "xiaolongnvo"的内容
那事务应该在那一层上? 领域层服务那层还是应用层服务那层 ...

应用层

关于转账这个案例,使用DDD不是非常合适,因为Transfer只能作为服务,实际上它和Account关系比较密切,只是在不同Accout实例之间发生行为,通过DCI以及Scala等面向函数语言最合适。具体可看本站这方面案例(也是使用转账这个功能)
[该贴被banq于2011-02-11 17:02修改过]

2011年02月11日 16:56 "banq"的内容
具体可看本站这方面案例(也是使用转账这个功能) ...

能不能给个明确点的例子?谢谢

具体可看本站这方面案例(也是使用转账这个功能) ...

能不能给个明确点的例子?谢谢