추상 메소드 정의
/* 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 |