Aggregate 생명주기(Factory, Repository)

Factory

  • Aggregate를 생성하는 일이 복잡하거나 내부구조를 너무 많이 드러내는 경우, Factory로 캡슐화

  • Factory의 사용 이유

    • 객체 생성이 그 자체로 주요한 연산이 될 수 있지만 복잡한 조립 연산은 생성된 객체의 책임으로는 어울리지 않음

    • 이 책임을 클라이언트에 두면 클라이언트의 설계가 지저분해 지고 조립되는 객체나 Aggregate의 캡슐화가 위반됨

    • 클라이언트와 생성된 객체사이의 구현이 지나치게 결합됨

    Factory사용이 위와 같은 장점이 있지만, 복잡하지 않거나 다른 로직이 필요없을 경우 생성자로 대체
    우리는 복잡한 소프트웨어 구조를 적절한 패턴으로 덜 복잡하게 만드는게 목표임
    간단한 구조를 패턴을 사용할 경우 간단한게 복잡해 보일 수 있음
    트레이드 오프를 항상 생각하자

Repository

  • 객체를 재구성, 제거를 담당

    객체의 재구성이란?
    저장되어있는 객체로부터 인스턴스를 만들어내는 것

  • Aggregate내부에 존재하는 모든 객체는 루트에서부터 탐색을 토대로 접근할것

팩토리는 객체의 생성을, 레포지토리는 객체의 재구성, 제거를 담당

#Aggregate

Hugo로 만듦
JimmyStack 테마 사용 중