3. 3 디자인
팩토리 메서드 패턴에 대한 예제 프로그램을 디자인해 봅시다. 예제 프로그램의 시나리오에는 응용 프로그램과 뷰로 구성할게요.
응용 프로그램은 초기화에서 메인 뷰 개체를 생성하고 응용에 필요한 초기 작업을 수행합니다. 그리고 Run에서 메인 뷰가 활성화되어 사용자와 상호 작용을 수행합니다. 해제에서는 응용에서 사용한 자원을 해제합니다. 이와 같은 기능들에 대한 필수적인 기능을 수행하게 구현하고 메인 뷰 개체를 생성하는 메서드를 약속한 추상 클래스를 EHApp라고 정할게요. 그리고 활성화 가능한 기능을 약속한 인터페이스 IView를 정의할게요. 이처럼 기본 뼈대를 정의해 놓으면 실제 응용을 제작할 때에는 목적에 맞게 상호 작용하는 뷰 클래스를 IView를 기반으로 MyView 클래스로 정의하고 EHApp에서 파생한 클래스를 만들어 뷰 개체를 생성하는 메서드를 구체적으로 구현합니다. 이처럼 응용을 제작하면 기본적인 뼈대가 기반 클래스에 정의되어 있으므로 별다른 작업을 하지 않아도 됩니다. 물론, 초기화, Run, 해제에서 특별하게 해야 할 작업이 있다면 재정의할 수도 있습니다.