본문 바로가기

design pattern

Template Method Pattern

상속을 통해 슈퍼클래스 기능 확장


'hook method' : Override 할 수 있도록 만든 메소드





/*  Super Class */
public abstract class UserDao {
	
	// 템플릿 메소드 패턴 > 서브클래스에서 구체적인 오브젝트(Connection) 생성 방법을 결정하도록 추상화 
	public abstract Connection getConnection(); 

}

// Sub Class 1 public class DUserDao extends UserDao { @Override public Connection getConnection() { Class.forName("com.mysql.jdbc.Driver"); Connection connection = DriverManager.getConnection("url", "user", "passed"); return connection; } } // Sub Class 2 public class NUserDao extends UserDao { @Override public Connection getConnection() { Class.forName("com.mysql.jdbc.Driver"); Connection connection = DriverManager.getConnection("url", "user", "passed"); return connection; } }

메소드 사용

@Test public void get() { UserDao userDao = new DUserDao(); }