매퍼
독립적인 두 객체 간의 통신을 설정하는 객체
작동원리
- 두 하위 시스템을 격리한다.
- 작동 방법은 매퍼가 매핑하는 계층의 종류에 따라 다르다.
사용시점
- 하위 시스템간의 상호작용에 대한 의존성이 없어야 하는경우
- 상호작용이 두 시스템의 주요 용도와는 다소 거리가 있을 때
- 엔터프라이즈 애플리케이션 매퍼는 데이터베이스와의 상호작용을 위한 데이터 매퍼*로 주로 사용된다. (*10장 데이터원본 아키텍처 패턴 참조)
계층 상위 형식(Layer SuperType)
해당 계층에서 모든 형식의 상위 형식 역할을 하는 형식, 공통 부분을 부모 클래스에서 상속받아 사용하자
작동원리
한 계층 내의 모든 객체에 대한 상위 클래스를 만드는 것이다.
사용시점
모든 객체에 적용되는 공통적인 기능이 있을 때
예제: BaseEntity 객체
도메인의 Entity 객체의 공통적으로 들어가는 생성자, 수정자에 대한 필드를 갖는 계층 상위 형식
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class BaseEntity extends BaseTimeEntity {
@Column(name = "created_by")
@CreatedBy
private String createdBy;
@Column(name = "updated_by")
@LastModifiedBy
private String updatedBy;
}
'Design Patterns' 카테고리의 다른 글
레지스트리 패턴, 특수 사례 패턴 (0) | 2020.10.09 |
---|---|
분리 인터페이스 패턴, 플러그인 패턴 (0) | 2020.10.09 |
게이트웨이 패턴, 서비스 스텁 패턴 (0) | 2020.10.08 |
지연로드(Lazy Load) 패턴 (0) | 2020.10.04 |
식별자 맵 패턴 (0) | 2020.10.03 |