单态模式:
private BookInfoDAO() {}
private static BookInfoDAO instance = new BookInfoDAO();
public static BookInfoDAO getInstance() {
return instance;
}
作用:避免多次NEW操作,提高程序运行效率。
例如,BookInfoDAO.getInstance().需调用对应DAO中的方法。
工厂模式:
private static Map<String, Object> daoPool = new HashMap<String, Object>();
private DaoFactory() {}
public static Object getDao(Class cls) throws Exception {
String key = cls.getPackage().getName() +"."+ cls.getName();
if(daoPool.containsKey(key)) {
return daoPool.get(key);
} else {
Object dao = cls.newInstance();
daoPool.put(key, dao);
return dao;
}
}
作用:上叙代码是代表一个DAO生产工厂,方便对不同的DAO实现单态模式。
例如,OrderInfoDAO dao = (OrderInfoDAO)DaoFactory.getDao(OrderInfoDAO.class);
dao.需调用对应DAO中的方法。