Factory Method Pattern
객체를 생성하기 위해 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 서브클래스가 결정하도록 한다. Motivation 애플리케이션이 여러 도형(원, 사각형 등)을 그려야 하며, 각 도형은 그리는 방식(화면에 그리기, 파일에 그리기 등)이 다르다. 클라이언트 코드에서 도형을 생성할 때 어떤 도형을 생성할지 조건문으로 판단하고, 이를 여러 곳에서 반복해야 한다. 팩토리 메서드 패턴을 사용하면 객체 생성을 서브클래스에 위임하여 클라이언트 코드에서 도형을 구체적인 클래스에 의존하지 않도록 할 수 있다. 즉, 도형 종류가 추가될 때 기존 코드를 수정하지 않고 새로운 도형 클래스를 추가하는 것만으로 해결할 수 있다....