추상 팩토리 패턴
추상 팩토리 패턴 (Abstract Factory Pattern)
서로 연관되거나 의존적인 제품군들을 구체적인 클래스로 지정하지 않고 생성할 수 있는 인터페이스를 제공하는 패턴
팩토리들의 팩토리 역할을 수행
서로 관련된 여러 제품들을 한 번에 묶어서 생성할 수 있는 추상적인 공장을 의미
팩토리 메서드 패턴은 단일 제품의 생성을 다루고, 추상 팩토리 패턴은 관련된 제품의 그룹, 즉 제품군의 생성에 관한 패턴임
팩토리 메서드 패턴보다 한 단계 더 추상적이고 복잡한 구조
특정 제품군의 객체들이 항상 함께 생성되도록 보장하여 전체 시스템의 일관성을 유지함
클라이언트는 추상 팩토리 인터페이스만 사용하니, 구체적인 제품 클래스나 구체적인 팩토리 클래스에 의존하지 않음
팩토리는 구상 클래스가 아닌 추상 클래스와 인터페이스에 맞춰 코딩할수 있게해주는 기법임
1. 제품 인터페이스 정의
서로 다른 팩토리에서 생성될 제품들의 인터페이스 정의
버튼과 체크박스는 환경마다 다양한 버전으로 만들어질 수 있는 제품군으로 사용될 것
interface Button {
render(): void
}
interface Checkbox {
render(): void
}2. 구체적인 제품 정의
각 제품군에 해당하는 구체적인 제품 구현
3. 추상 팩토리 인터페이스 정의
서로 관련된 제품군을 만드는 방법을 정의하는 추상 인터페이스
4. 구체적인 팩토리 정의
추상 팩토리 인터페이스를 구현하고, 특정 제품군에 속하는 구체적인 제품 인스턴스를 생성함
클라이언트에서 제품이 필요하면 해당 팩토리들 중 골라서 쓰는 방식
5. 클라이언트 코드
구체적인 팩토리 클래스 대신 추상 팩토리 인터페이스만을 다루고, 실행 시점에 어떤 팩토리를 사용할지만 결정
어떤 제품이 생성되는지 전혀 알 필요 없음
Last updated