[Book]Design Pattern 4장

팩토리 메소드 패턴

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

추상 팩토리 패턴

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

디자인원칙

  • 추상화된 것에 의존하도록 만들어라. 구상 클래스에 의존하도록 만들지 않도록 한다.(Dependency Inversion)
    • 어떤 변수에도 구상 클래스에 대한 레퍼런스를 저장하지 맙시다
    • 구상 클래스에서 유도된 클래스를 만들지 맙시다
    • 베이스 클래스에 이미 구현되어 있던 메소드를 오버라이드 하지 맙시다

핵심정리

  • 팩토리를 쓰면 객체 생성을 캡슐화 할 수 있다
  • 간단한 팩토리는 엄밀히 말해 디자인 패턴은 아니지만, 클라이언트와 구상 클래스를 분리시키기 위한 간단한 기법으로 활용할 수 있다
  • 팩토리 메소드 패턴에서는 상속을 활용한다. 객체 생성이 서브클래스에게 위임된다. 서브클래스에서는 팩토리메소드를 구현하여 객체를 생산한다
  • 추상팩토리패턴에서는 객체구성을 활용한다. 객체 생성이 팩토리 인터페이스에서 선언한 메소드들에서 구현된다.
  • 모든 책토리 패턴에서는 애플리케이션의 구상 클래스에 대한 의존성을 줄여줌으로써 느슨한 결합을 도와준다
  • 팩토리 메소드 패턴에서는 어떤 클래스에서 인스턴스를 만드는 일을 서브클래스한테 넘긴다
  • 추상팩토리 패턴은 구상 클래스에 직접 의존하지 않고도 서로 관련된 객체들로 이루어진 제품군을 만들기 위한 용도로 쓰인다
  • 의존성 뒤집기 원칙을 따르면 구상 형식에 대한 의존을 피하고 추상화를 지향할 수 있다
  • 팩토리는 구상 클래스가 아닌 추상 클래스/인터페이스에 맞춰서 코딩 할 수 있게 해주는 강력한 기법이다

카테고리:

업데이트:

댓글남기기