객체를 생성하기 위한 인터페이스를 정의하고 클래스의 인스턴스를 만드는 일을 서브 클래스에게 맡김.
구상 클래스가 아닌 추상화 된 인터페이스에 의존하도록 만드는 원칙.
인터페이스를 통해서 추상화된 팩토리를 의존하고 실제로 구현된 팩토리를 분리시키는 패턴. 서로 관련된 객체들로 이루어진 제품군을 만드는 용도로 쓰임.