Factory method pattern
팩토리 메소드 패턴은 객체의 새성 코드를 별도의 클래스 또는 메소드로 분리함으로써 객체 생성의 변화에 대비하는데 유용하다. 프로그램이 제공하는 기능은 상황에 따라 변경될 수 있다. 그리고 특정 기능의 구현은 개별 클래스를 통해 제공되는 것이 바람직한 설계다. 그러므로 기능의 변경이나 상황에 따른 기능의 선택은 바로 해당 객체를 생성하는 코드의 변경을 초래한다. 게다가 상황에 따라 적절한 코드를 생성하는 코드는 자주 중복 될 수 있다. 이런 경우 객체 생성 방식의 변화는 해당되는 모든 코드 부분을 변경해야 하는 문제를 야기한다. 여기