4장 : 팩토리 패턴

팩토리 메소드 패턴

  • 팩토리 메소드 패턴에서는 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만듭니다. 팩토리 메소드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브클래스에 맡기는 것이죠.

  • 객체를 생성하는 코드를 캡슐화

  • 장점

    • 객체 생성 코드를 전부 한 객체 또는 메소드에 집어넣으면 코드에서 중복되는 내용을 제거할 수 있고, 나중에 관리할 때도 한 군데에만 신경을 쓰면 된다. 그리고 클라이언트 입장에서는 객체 인스턴스를 만들 때 필요한 구상 클래스가 아닌 인터페이스만 필요로 하게 됩니다.

객체 의존성

  • 객체 인스턴스를 직접 만들면 구상 클래스에 의존해야 한다.

의존성 뒤집기 원칙 (Dependency Inversion Principle)

  • 추상화된 것에 의존하도록 만들어라. 구상 클래스에 의존하도록 만들지 않도록 한다.

언제 사용 ?

구현 방법

장단점

추상 팩토리 패턴

  • 추상 팩토리 패턴에서는 인터페이스를 이용하여 서로 연관된, 또는 의존하는 객체를 구상 클래스를 지정하지 않고도 생성할 수 있습니다.

  • 서로 연관된, 또는 의존적인 객체들로 이루어진 제품군을 생성하기 위한 인터페이스를 제공합니다. 구상 클래스는 서브 클래스에 의해 만들어진다.

언제 사용 ?

구현 방법

장단점

팩토리 메소드 패턴 vs 추상 팩토리 패턴

  • 팩토리 메소드 패턴 :

    • 상속을 통해 객체를 만듬

    • 클래스를 확장

  • 추상 팩토리 패턴 :

    • 객체 구성을 통해 만듬

    • 메소드 오버라이드

Refactoring Guru Code & Diagram

Factory method

Abstract method

.

Last updated