본문 바로가기

design pattern

Factory Method Pattern + Strategy Pattern

추상 메소드 정의



// 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