본문 바로가기

design pattern

Factory Method Pattern + Template Method Pattern

추상 메소드 정의



  
/*  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;
	}
}
public class DaoFactory {

	public UserDao getUserDao() {
		return new DUserDao();
	}
}
메소드 사용
@Test
public void get() {
	
	UserDao userDao = new DaoFactory().getUserDao();
 }

'design pattern' 카테고리의 다른 글

OOP (Object Oriented Programming)  (0) 2014.03.03
Factory Method Pattern + Strategy Pattern  (0) 2014.03.03
Strategy Pattern  (0) 2014.03.03
Template Method Pattern  (0) 2014.03.03
loC (Inverse Of Control) 제어의 역전  (0) 2014.02.28