Archive for the ‘ design pattern ’ Category

Struts framework and model-view-controller design pattern

http://publib.boulder.ibm.com/infocenter/rtnlhelp/v6r0m0/index.jsp?topic=/com.ibm.etools.struts.doc/topics/cstrdoc001.html

GoF 디자인 패턴 레퍼런스 카드

Design Patterns Quick Reference

http://www.mcdonaldland.info/2007/11/28/40/

Template Method 패턴

Template Method 패턴이란

템플릿의 기능을 가진 패턴. 상위 클래스 쪽에 탬플릿에 해당하는 메소드가 정의되어 있고, 그 메소드의 정의 안에는 추상 메소드가 사용되고 있다. 따라서 상위 클래스의 프로그램만 보면 추상 메소드를 어떻게 호출하고 있는지 알 수 있지만, 최족적으로 어떤 처리가 수행되는지는 알 수 없다.

추상 메소드를 실제로 구현하는 것은 하위 클래스이다. 하위 클래스 측에서 메소드를 구현하면 구체적인 처리가 결정된다. 서로 다른 하위 클래스가 서로 다른 구현을 실행하면 서로 다른 처리가 실행될 것이다. 그러나 어떤 하위 클래스에서 어떤 구현을 하더라도 처리의 큰 흐름은 상위 클래스에서 결정한대로 이루어진다. 이와 같이 상위 클래스에서 처리의 뼈대를 결정하고, 하위 클래스에서 그 구체적인 내용을 결정하는 디자인 패턴을 Template Method 패턴 이라고 부른다.

Template Method 패턴의 등장인물

AbstractClass(추상 클래스)의 역할

AbstractClass는 템플릿 메소드를 구현한다. 또한 그 템플릿 메소드에서 사용하고 있는 추상 메소드를 선언한다. 이 추상 메소드는 하위 클래스인 ConcreteClass 역할에 의해 구현된다.

ConcreteClass(구현 클래스)의 역할

AbstractClass 역할에서 정의되어 있는 추상 메소드를 구체적으로 구현한다. 여기에서 구현한 메소드는 AbstractClass 역의 템플릿 메소드에서 호출된다.