티스토리 뷰

템플릿 메소드 패턴

변하지 않는 부분은 슈퍼클래스에 두고 변하는 부분은 추상 메소드로 정의하여 서브클래스에서 오버라이드하여 새롭게 정의해 쓰도록 하는 패턴

기존의 상위 DAO 클래스에 불필요한 변화는 생기지 않도록 할 수 있으나 DAO 로직마다 상속을 통해 새로운 클래스를 만들어야 하기 때문에 제한이 많다. 또한 상위 클래스와 서브클래스들의 관계가 컴파일 시점에 이미 결정되므로 관계의 유연성이 떨어진다.

전략 패턴은 개방 폐쇄 원칙(OCP)를 잘 지키는 구조이면서도 템플릿 메소드 패턴보다 유연하고 확장성이 뛰어나다. 오브젝트를 아예 둘로 분리하고 클래스 레벨에서는 인터페이스에만 의존하기 때문이다.



'공부 > 토비의 스프링 3.1' 카테고리의 다른 글

템플릿/콜백 패턴  (0) 2019.03.06
중첩 클래스의 종류  (0) 2019.03.05
리소스 반환과 close()  (0) 2019.03.05
버그 테스트 방법  (0) 2019.03.04
DI와 테스트  (0) 2019.03.04
댓글