카테고리 없음
탬플릿 패턴
hyun9_9
2024. 4. 28. 15:14
여러 클래스에서 공통으로 사용하는 메서드를 템플잇화 하여 상위 클래스에서 정의하고 하위 클래스마다 세부 동작 사항을 다르게 구현하는 패턴이다 - JDBC템플릿
변하지 않는 기능은 상위클래스에 만들어두고
자주 변경되며 확장할 기능은 하위 클래스에서 만들도록 하여 상위의 메소드 실행 동작 순서는 고정하면서 세부 실행 내용은 다양화 될 수 있는 경우에 사용된다
사용 시기
클라이언트가 알고리즘의 특정 단계만 확장하고 전체 알고리즘이나 해당 구조는 확장하지 않도록 할때 동일한 기능은 상위 클래스에서 정의하면서 확장 변화가 필요한 부분만 하위 클래스에서 구현할때
장점
클라이언트가 대규모 알고리즘의 특정 부분만 재정의하도록 하여 알고리즘의 다른 부분에 발생하는 변경 사항의 영향을 덜 받도록 한다.
상위 추상클래스로 로직을 공통화 하여 코드의 중복을 줄일수있다
서브클래스의 역할을 줄이고 핵심 로직을 상위 클래스에서 관리하므로서 관리가 용이해진다
단점
알고리즘의 제공된 골격에 의해 유연성이 제한될 수 있다
알고리즘 구조가 복잡할수록 템플릿 로직 형태를 유지하기 어려워진다
추상메소드가 많아지면서 클래스의 생성, 관리가 어려워질 수 있다
상위 클래스에서 선언되 추상메소드를 하위 클래스에서 구현할때 그 메소드가 어느 타이밍에서 호출되는지 클래스 로직을 이해해야 할 필요가 있다
로직에 변화가 생겨 상위 클래스를 수정할 때 모든 서브 클래스의 수정이 필요할 수도 있다