- 구체적인 클래스를 생성하지 않고도 서로 관련성이 있거나 독립적인 여러 객체의 군을 생성하기 위한 인터페이스를 제공한다.
- 추상화된 인터페이스 팩토리를 제공하고 상황에 따라 그에 맞는 인스턴스들이 생성되도록 함
- 가령 데이터베이스에 따라 DAO클래스가 달라져야 한다고 할 때, 현재 사용해야 하는 DB의 종류에 따른 DAO 인스턴스를 한꺼번에 생성하도록 한다
샘플예제 : DB type을 설정파일로 받아서, 동적으로 Oracle, Mysql DAO 클래스를 생성해서 호출하는 구조
String dbType = "ORACLE";
DaoFactory daoFactory = null;
if(dbType.equals("MYSQL")) {
daoFactory = new MysqlDaoFactory();
}else if( dbType.equals("ORACLE")){
daoFactory = new OracleDaoFactory();
} else {
System.out.println("error");
}
UserInfoDao userInfoDao = daoFactory.createUserInfoDao();
userInfoDao.insertProduct(userInfo);
userInfoDao.updateProduct(userInfo);
ProductDao productDao = daoFactory.createProductDao();
productDao.insertProduct(product);
productDao.updateProduct(product);
반응형