자바에는 템플릿 메서드를 제공하는데
이는 여러 객체간 협업이나 일련의 메서드 행위를 하나의 틀로 묶어 수행하게 함으로써
코드의 유지, 보수를 도와주는 기능이다.
가령 식물원에서 관리 대상 식물 객체들이 10개 있고,
식물들에게 물을 주는 관리자 객체가 있다 하면 새로 온 관리자든 기존의 관리자든 항상
모든 식물들에게 물을 줘야한다.
그런데 코드를 짤 때 실수로 새로 생성된 관리자 객체에 대하여,
관리자가 식물(0~9)에게 물을 줍니다라는 메서드 호출을 -> 관리자가 (1~10)에게 물을 줍니다라고 코딩을 하면
자바 프로그램이 에러를 반환하며 다운된다.
그런데 만약에 템플릿 메서드로 물주기라 선언하고 일관성 있게
0~9까지의 식물에게 객체가 물을 준다. 라고 템플릿화 해 놓았다면,
새로운 관리자 객체가 추가되어도! 하나하나 식물객체마다 물을 주는 메서드 호출 할 필요없이
물주기 라는 템플릿 메서드를 호출하면 간단하게 해결된다!
그리고! 템플릿 메서드는 앞서 말했듯이 모든 관리자 객체가 동일하게 수행해야하는 내용이니
각 관리자 클래스가 재정의를 해서는 안된다.
이때 final 예약어를 템플릿 메서드 선언부 앞에 작성해 주면 메서드의 재정의를 제한할 수 있다!
'CS 공부 > Java, Spring (재정리)' 카테고리의 다른 글
Spring - MVC, 서블릿 (0) | 2021.04.01 |
---|---|
Spring - DI, IoC (0) | 2021.03.25 |
java abstract 클래스, 추상클래스 (0) | 2020.01.02 |
자바 항목에 있는 글들은 (0) | 2020.01.01 |
java 상속성 - 오버라이딩,캐스팅,다형성 (0) | 2020.01.01 |