본문 바로가기

Design Patterns

매퍼 패턴, 계층 상위 형식패턴

매퍼

독립적인 두 객체 간의 통신을 설정하는 객체

작동원리

  • 두 하위 시스템을 격리한다.
  • 작동 방법은 매퍼가 매핑하는 계층의 종류에 따라 다르다.

사용시점

  • 하위 시스템간의 상호작용에 대한 의존성이 없어야 하는경우
  • 상호작용이 두 시스템의 주요 용도와는 다소 거리가 있을 때
  • 엔터프라이즈 애플리케이션 매퍼는 데이터베이스와의 상호작용을 위한 데이터 매퍼*로 주로 사용된다. (*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;
}