객체 생성 부분 캡슐화하기
- 팩토리(Factory) - 객체 생성을 처리하는 클래스
‘간단한 팩토리’의 정의
- 간단한 팩토리(Simple Factory)는 디자인 패턴이라기보다는 프로그래밍에서 자주 쓰이는 관용구에 가깝습니다.
팩토리 메소드 선언하기
- 구상 클래스 인스턴스 만드는 일을 하나의 객체가 전부 처리하는 방식에서 일련의 서브클래스가 처리하는 방식으로 바뀌었습니다.
팩토리 메소드 패턴 살펴보기
- 모든 팩토리 패턴은 객체 생성을 캡슐화합니다. 팩토리 메소드 패턴은 서브클래스에서 어떤 클래스를 만들지 결정함으로써 객체 생성을 캡슐화합니다.
생산자(Creator) 클래스
- 추상 생산자 클래스. 나중에 서브클래스에서 제품(객체)을 생산하려고 구현하는 팩토리 메소드(추상 메소드)를 정의합니다.
- 생산자 클래스에 추상 제품 클래스에 의존하는 코드가 들어있을 때도 있습니다. 이 제품 클래스의 객체는 클래스의 서브클래스에 의해 만들어지죠. 생산자 자체는 어떤 구상 제품 클래스가 만들어질지 미리 알 수 없습니다.
병렬 클래스 계층구조 알아보기
- 구상 생산자별로 수많은 제품을 만들 수 있습니다. 생산자 클래스와 거기에 대응되는 제품 클래스는 병렬 계층구조로 볼 수 있습니다.
- 제품 클래스와 생산자 클래스는 둘 다 추상 클래스로 시작하고, 그 클래스를 확장하는 구상 클래스들을 가지고 있습니다.