TemplateMethod 패턴

Java 언어로 배우는 디자인 패턴 입문10점
유키 히로시 지음, 이규흥 옮김/영진.com(영진닷컴)

조금 시점을 바꿔 상위 클래스의 입장에서 생각해 보자. 상위클래스에 추상메서드가 선언되어 있다고 가정하면 메서드 구현은 당연히 하위 클래스에 맡겨져 있다
바꿔 말해 추상 메소드를 선언한다는 것은 프로그램을 사용해서 하위 클래스에서 메서드가 구현되길 기대하거나, 그 구현을 요청한다는 뜻을 나타낸다

책에 언급한대로 대부분의 누구처럼 나 역시 항상 하위 클래스의 시점에서 생각하고 있었다. 딱히 하위 클래스라고 구분짓지 않고라도 그냥 ‘구현’에만 매달렸을뿐 전체적인 흐름이라던가 재사용에 대한 고민따위 별로 해본적이 없었다

나에게 일을 시켰던 많은 사람들을 떠올려봐도 딱히 이런 고민을 해본적이 없는거 같다.
당연히 그랬어야 했던건데…  로직을 처리할 Template Method를 만들어 놓고 나에게 해당 클래스를 상속받아 이런저런 메소드를 구현하라고 했으면 됐을텐데… 흠…

암튼 요 패턴 마지막 부분엔 LSP 원칙이라는게 나온다

AbstractDisplay d1 = new StringDisplay("Hello, World");
d1.display();

위의 코드처럼 상위 클래스형의 변수에 하위 클래스의 어떤한 인스턴스를 대입해도 제대로 작동할 수 있어야 한다 는 원칙이랜다

당연히 상속을 받으면 하위클래스의 어떠한 메서드도 제대로 작동하지 않을까 싶지만
아래 글을 읽어보면 제대로 작동한다는 말에 좀더 많은 의미가 있음을 알 수 있다

http://bit.ly/hgOPBn

Advertisements
%d bloggers like this: