24. 템플릿 메서드 패턴(Template Method Pattern) 구현

24.4 구현

템플릿 메서드 패턴에 대한 예제 프로그램을 구현하는 순서는 EHApp, MyApp 순으로 하겠습니다.

 

24.4.1 EHApp

EHApp 클래스에서 사용자에 노출할 메서드는 Do 메서드 하나입니다. 그리고, Do 메서드에서 수행할 작업 절차는 초기화, 사용자와 상호 작용, 해제화를 하는 것으로 정하였습니다.

 

그리고 초기화와 해제화의 경우는 실제 작성할 응용의 목적에 따라 재정의할 수 있어야 겠지요.

사용자와 상호 작용을 하는 부분도 선택한 메뉴가 종료 키가 아니라면 선택한 키에 따라 동작하는 것을 반복하기로 하였습니다. 대신 선택한 키가 1일 때 제품 정보를 보여주기로 하였죠.

 

물론 선택한 키에 따라 어떠한 동작을 할 것인지에 대한 구체적인 구현도 각 응용마다 다를 것입니다. 제품에 대한 정보도 다를 수 있겠죠. EHApp에서는 파생 클래스에서 재 정의할 수 있게 해야 할 것입니다.

▶ EHApp.cs

 

24.4.2 MyApp

MyApp 클래스에서는 목적에 맞게 초기화 부분과 해제화 부분에 대한 재정의하는 것을 보여줄 것입니다. 그리고, 선택한 키에 따라 수행하는 메서드와 제품 정보를 보여주는 부분도 재정의해야겠지요. 물론 부분적으로 기반 클래스에 정의한 것을 사용할 때도 있을 것입니다.

▶ MyApp.cs 

  이를 사용하는 부분은 개체 생성과 Do 메서드 호출 및 개체 소멸을 하는 것 밖에 없겠죠.

▶ Program.cs 

다음은 메뉴를 F1, F2, F3, F4, ESC 순으로 선택하였을 때의 실행 결과입니다. 

▶ 실행 결과