직접 큐와 표준 큐의 책임 배치

저수준 정확성과 애플리케이션 의미를 서로 다른 계층에 둔다.

직접 구현

락, 조건, 시간 제한, 취소를 모두 자체 검증해야 한다.

유지 비용 큼

표준 구현

검증된 대기와 원자적 연산을 BlockingQueue에 맡긴다.

기계 장치 위임

도메인 책임

용량, 거부 폴백, 메시지 타입, 종료 순서를 정한다.

여전히 필요

불필요한 래퍼

예외를 숨기고 메서드 이름만 바꾸면 계약이 흐려진다.

제거 대상
경계지표와 수명주기처럼 실제 책임이 있을 때만 포장 계층을 둔다.

핵심: 표준 타입을 선택해도 어떤 연산 결과를 소비하는지가 데이터 보존을 결정한다.