반응형
스펙(Specification)
CQRS
명령(Command)모델과 조회(Query)모델을 분리하는 패턴이다.
명령모델은 상태를 변경 하는 기능을 구현할 때 사용하며 주로 도메인 모델이 이에 해된다.
조회모델은 상태를 조회 하는 기능을 구현 할 때 사용 한다.
검새조건이 단순하고 고정되어 있는경우
JPA 메소드 사용
findByEmailAddressAndLastname
findAllByDescriptionContaining
검색 조건을 다양하게 조합할 때 스펙을(specification) 사용한다.
/** 특정조건을 충족하는지 검사할 때 사용하는 인터페이스 */
public interface Specification<T> {
public boolean isSatisfiedby(T agg);
}
[주문이 특정 고객의 주문인지 확인하는 스펙 구현]
public class OrdererSpec implements Specification<Order> {
private String ordererId;
public boolean isSatisfiedBy(Order agg) {
return agg.getOrdererId().getMemberId().getId().equals(ordererId);
}
}
[단점]
조합이 증가할수록 정의 해야하는 메소드가 증가한다.
반응형
'객체지향' 카테고리의 다른 글
[DDD, 도메인 주도 개발] 8.애그리거트와 트랜잭션 (0) | 2023.04.16 |
---|---|
[DDD, 도메인 주도 개발] 6.응용서비스와 표현영역 (0) | 2023.04.09 |
[DDD, 도메인 주도 개발] 4.리포지터리와 모델 구현 (0) | 2023.03.28 |
[DDD, 도메인 주도 개발] 3.애그리거트와 애그리거트 루트 (0) | 2023.03.20 |
[DDD, 도메인 주도 개발] 2.아키텍처 개요 (0) | 2023.03.12 |