gyoogle.dev 블로그와 YABOONG 블로그를 참고하여 작성하였습니다.
이미지를 누르면 이미지의 출처로 이동합니다.
템플릿 메소드 패턴
- 알고리즘의 구조를 메소드에 정의하고 하위 클래스에서 알고리즘 구조의 변경없이 알고리즘을 재정의하는 패턴
- 상속을 통해 슈퍼클래스의 기능 확장할때 이용. 변하지 않는 기능은 슈퍼클래스에 만들고, 변경&확장기능은 서브클래스에서 만든다.
사용하는 경우
- 로직을 단계별로 나누어야하는 상황에서 적용
- 같은 역할을 하는 메소드가 여러 곳에서 다른형태로 사용이 필요할때 유용
- 수정 가능성이 있을때 더 효율적
예시를 참고하기 위한 블로그
Abstract vs Interface
: abstract는 부모의 기능을 자식에서 확장시키고싶을때 사용하며 interface는 해당 클래스가 가진 함수의 기능을 활용하고 싶을 때 사용한다.(추상클래스는 다중상속불가)