도메인은 하위도메인으로 나눌 수 있다.
사용자의 요청을 처리
하고 사용자에게 정보를 보여준다
. 여기서 사용자는실행
한다. 업무 로직을 직접 구현하지 않으며 도도메인 규칙을 구현
한다.확장
해야할 때 다른 코드에 영향을 덜 주고
변경 내역을 모델에 반영
데이터베이스
나 메시징 시스템과 같은 외부 시스템
과의 연동
을 처리한다.public class Receiver {
private String name;
private String phoneNumber;
public Receiver(String name, String phoneNumber) {
this.name = name;
this.phoneNumber = phoneNumber;
}
}
Receiver 받는 사람이라는 도메인 개념
public class Shippinginfo {
private Receiver receiver;
private Address address;
}
변경한 데이터를 갖는 새로운 밸류 객체를 생성
하는 방식을 선호public OrderLine(Product product, Money price, int quantity) {
this.product = product;
// 데이터를 복사한 새로운 객체를 생성
this.price = new Money (price, getValue());
this.quantity = quantity;
this.amounts = calculateAmounts();
}
상태 변경과 관련된 도메인 지식이 코드에서 사라지게
된다.모든 곳에서 같은 용어 사용