추상 메소드 정의
// Interface public interface ConnectionMaker { public abstract Connection getConnection(); }
// Interface 구현 public class ConnectionMakerImpl implements ConnectionMaker { @Override public Connection getConnection() { Class.forName("com.mysql.jdbc.Driver"); Connection connection = DriverManager.getConnection("url", "user", "passed"); return connection; } }
// Super Class public class UserDao { private ConnectionMaker connectionMaker; public UserDao(ConnectionMaker connectionMaker) { this.connectionMaker = connectionMaker; } public void get() { Connection connection = connectionMaker.getConnection(); ......... } }
// Factory public class DaoFactory { public UserDao getUserDao() { return new UserDao(new ConnectionMakerImpl()); } }
// Get Connection public class UserDaoTest { @Test public void get() { UserDao userDao = new DaoFactory().getUserDao(); ...... } }
'design pattern' 카테고리의 다른 글
OOP (Object Oriented Programming) (0) | 2014.03.03 |
---|---|
Strategy Pattern (0) | 2014.03.03 |
Factory Method Pattern + Template Method Pattern (0) | 2014.03.03 |
Template Method Pattern (0) | 2014.03.03 |
loC (Inverse Of Control) 제어의 역전 (0) | 2014.02.28 |