요약
- 객체지향 빵 굽기 : 팩토리 패턴
- 추상 팩토리 패턴의 정의
- 추상 팩토리 패턴 vs 팩토리 메소드 패턴
메모
추상 팩토리 패턴의 정의
📍 추상 팩토리 패턴(Abstract Factory Pattern) : 구상 클래스에 의존하지 않고도 서로 연관되거나 의존적인 객체로 이루어진 제품군을 생산하는 인터페이스를 제공함. 구상 클래스는 서브클래스에서 만듦.
- p191 PizzaStore 클래스 다이어그램 참고
- 추상 팩토리 패턴에서 인터페이스에 있는 각 메소드는 구상 제품이 생산하는 일은 맡음.
- 추상 팩토리의 서브클래스가 그 메소드를 구현함 → 팩토리 메소드 패턴을 사용하는 것임.
추상 팩토리 패턴 vs 팩토리 메소드 패턴
- 둘 다 애플리케이션을 특정 구현으로 부터 분리하는 일임.
- 팩토리 메소드 패턴
- 클래스를 써서 제품을 만듦 → 즉, 상속으로 객체를 만듦
- 클래스를 확장하여 팩토리 메소드를 오버라이드함.
- 구상 형식을 서브 클래스에서 처리해 주니까, 클라이언트는 자신이 사용할 추상 형식만 알면 됨.
- p194 클래스 다이어그램 참고
- 추상 팩토리 패턴
- 객체를 써서 제품을 만듦 → 즉, 객체 구성(composition)으로 만듦
- 제품군을 만드는 추상 형식을 제공함.
- 제품 생상 방법은 서브 클래스에서 정의함.
- 팩토리를 사용하려면 인스턴스를 만든 다음, 추상 형식을 써서 만든 코드를 전달하면 됨.
- p195 클래스 다이어그램 참고
- 두 패턴 모두 새로운 제품을 추가하면, 인터페이스를 바꾸고 코드 변경이 많이 생김
- 클라이언트에서 제품’군’을 만들어야 할 떄는 추상 팩토리 패턴이 좋음
- 클라이언트 코드와 인스턴스를 만들어야할 구상 클래스를 분리시켜야 할 때 팩토리 메소드 패턴이 좋음
- 특히, 구상 클래스가 필요할지 미리 알 수 없을 때 유용함.
디자인 도구상자 안에 들어가야 할 도구들
- 객체지향 원칙
- 추상화된 것에 의존하게 만들고 구상 클래스에 의존하지 않게 만든다.
- 추상 팩토리 패턴
- 팩토리 메소드 패턴
댓글