상세화된 서브클래스를 정의하지 않고도 서로 관련성이 있거나 독립적인 여러 객체 군을 생성하기 위한 인터페이스를 제공합니다.
개념적 제품에 대한 객체를 생성하는 연산으로 인터페이스를 정의
구체적인 제품에 대한 객체를 생성하는 연산을 구현
개념적 제품 객체에 대한 인터페이스를 정의
구체적으로 팩토리가 생성할 객체를 정의하고, AbstractProduct가 정의하는 인터페이스를 구현
AbstratFactory와 AbstractProduct 클래스에 선언된 인터페이스를 사용
이익
구체적인 클래스를 분리한다.
제품군을 쉽게 대체할 수 있다.
제품 사이의 일관성을 증진시킨다.
새로운 종류의 제품을 제공하기 어렵다.