Aoount
엔티티는 실제 계좌의 현재 스냅숏을 제공Activity
엔티티에 포착된다.Account
엔티티는 ActivityWindow
값 객체에서 포착한 몇 주간의 범위에 해당하는 활동만 보유한다.Account
엔티티는 ActivityWindow
의 첫 번째 활동 전 잔고를 표현하는 baselineBalance
필드를 가진다. (총 잔고는 baselineBalance
+ ActivityWindow
의 모든 잔고를 합한 값)withdraw()
와 deposit()
메서드로 입금과 출금의 활동들을 활동창에 추가할 수 있다.SendMoneyService
는 SendMoneyUseCase
를 구현LoadAccountPort
호출UpdateAccountStatePort
호출SendMoneyCommand
의 파라미터 수가 변화비즈니스 규칙 검증의 가장 좋은 방법은 도메인 엔티티 안에 작성하는 것이다.
public class Account {
// ...
public boolean withdraw(Money money, AccountId targetAccountId) {
if (!mayWithdraw(money)) {
return false;
}
// ...
return true;
}