728x90
반응형
템플릿 메소드 패턴
템플릿 메소드 패턴이란?!?!?!?!?
상속을 통해 슈퍼클래스의 기능을 확장할 때 사용하는 가장 대표적인 방법이다.
변하지 않는 기능은 슈퍼클래스에 만들어두고 자주 변경되며 확장할 기능은 서브클래스에 만든다.
슈퍼클래스에서는 미리 추상 메소드 또는 오버라이드 가능한 메소드를 정의해두고
이를 활용해 코드의 기본 알고리즘을 담고 있는 템플릿 메소드를 만든다.
슈퍼클래스에서 디폴트 기능을 정의해두거나 비워뒀다가 서브클래스에서 선택적으로 오버라이드할 수 있도록 만든 메소드를 훅(hook) 메소드라고 한다.
서브클래스에서는 추상 메소드를 구현하거나, 훅 메소드를 오버라이드하는 방법을 이용해 기능의 일부를 확장한다.
public abstract class Super {
public void templateMethod() {
hookMethod();
abstractMethod();
}
protected void hookMethod() { } // 훅 메소드 : 선택적으로 오버라이드 가능
public abstract void abstractMethod(); // 추상 메소드 : 서브클래스에서 반드시 구현해야 함
}
public class Sub1 extends Super {
protected void hookMethod() {
...
}
public void abstractMethod(){
...
}
}
의존성 주입 DI Dependency Injection
의존성 주입이란 의존을 클래스에서 직접 하지 않고 생성자를 통해서 의존성을 주입하는 것이다.
의존성 주입을 실현하는 방법에는 생성자를 이용하는 방법이 있다.
생성자의 매개변수로 객체를 전달해 의존성을 주입하는 것이다.
728x90
반응형
'멋쟁이 사자처럼 > TIL' 카테고리의 다른 글
230526 6주 5일차 TIL. 추상클래스와 인터페이스, 제네릭, 컬렉션, 예외처리 (0) | 2023.05.26 |
---|---|
230524 6주 4일차 TIL. SQL, BETWEEN, COUNT (0) | 2023.05.25 |
230523 6주 2일차 TIL. DAO, executeQuery, executeUpdate, Connection 분리 (1) | 2023.05.23 |
230522 6주 1일차 TIL. DB 연동, Statement, PreparedStatement, DB 접속 정보 변수 처리 (1) | 2023.05.22 |
230518 5주 4일차 TIL. 괄호 풀기, DB 연관관계, Dump (3) | 2023.05.18 |