디자인패턴

Abstract Factory 패턴

끄적끄적 2022. 4. 20. 21:49

 

  • 구체적인 클래스를 생성하지 않고도 서로 관련성이 있거나 독립적인 여러 객체의 군을 생성하기 위한 인터페이스를 제공한다.
  • 추상화된 인터페이스 팩토리를 제공하고 상황에 따라 그에 맞는 인스턴스들이 생성되도록 함
  • 가령 데이터베이스에 따라 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);

 

 

반응형