런타임노트

[헤드퍼스트 디자인패턴] 14일차. 190-204pg 본문

책책책 책을 읽읍시다‼ ver.개발/[ 헤드퍼스트 디자인패턴 ]

[헤드퍼스트 디자인패턴] 14일차. 190-204pg

D269 2023. 5. 10. 23:03
728x90

14일차

헤드퍼스트 디자인패턴 [3주차_화요일]

190-204pg

요약

CHAPTER 04. 객체지향 빵 굽기 (feat. 팩토리 패턴)

[ 추상 팩토리 패턴(Abstract Factory Pattern) ]

구상 클래스에 의존하지 않고도 서로 연관되거나 의존적인 객체로 이루어진 제품군을 생산하는 인터페이스를 제공한다.

구상 클래스는 서브 클래스에서 만든다.

 

[ 팩토리 메소드 패턴 =/= 추상 팩토리 패턴 ]

  • 팩토리 메소드 패턴
    • 상속으로 객체를 만든다.
    • 객체 생성 방법 : 클래스를 확장하고, 팩토리 메소드를 오버라이드 한다.
    • 클라이언트와 구상 형식을 분리하는 역할
  • 추상 팩토리 패턴
    • 제품군을 만드는 추상 형식을 제공한다.
    • 제품이 생산되는 방법은 이 형식의 서브클래스에서 정의한다.
    • 클라이언트와 실제 구상 제품이 분리되는 것
    • 많은 제품군을 생성하는 데에 적합
    • 구상 팩토리를 구현할 때 팩토리 메소드로 제품을 생산하기도 함.

 

[ 객체 지향 원칙 추가++ ]

  • 추상화된 것에 의존하게 만들고, 구상 클래스에 의존하지 않게 만든다.
  • 가능하면 모든 것을 추상화 하라.

[ 패턴 추가++ ]

  • 추상 팩토리 패턴과 팩토리 메소드 패턴은 객체 생성을 캡슐화하는 패턴
  • 클라이언트와 구상 클래스가 서로 분리된 유연한 디자인을 구현할 수 있게 한다.

 

CHAPTER 05. 하나뿐인 특별한 객체 만들기 (feat. 싱글턴 패턴)

  • 싱글턴 패턴 : 특정 클래스에 객체 인스턴스가 하나만 만들어지도록 해 주는 패턴.
  • 전역 변수를 사용할 때 처럼, 객체 인스턴스를 어디서든지 액세스 할 수 있게 만들고, 전역 변수를 쓸 때의 단점도 없다.

발췌

💡 팩도리 메소드 패턴 : 상속으로 객체를 만든다. 추상 팩토리 패턴 : 객체 구성(composition)으로 만든다.
💡 제품군을 만들어야 할 때는 추상 팩토리 패턴, 클라이언트 코드와 인스턴스를 만들어야 할 구상 클래스를 분리시켜야 할 때는 팩토리 메소드 패턴

 

 

 

 

 

728x90
반응형