手寫一個簡單的工廠模式(二)
阿新 • • 發佈:2020-08-29
圖中這裡仍然是耦合的
所以首先在BeanFactory類中新增方法getUserDAO()
public static UserDAO getUserDAO(){ UserDAO userDAO = null; try { Class clazz = Class.forName(env.getProperty("userDAO")); //Object obj = clazz.newInstance(); userDAO = (userDAO)clazz.newInstance(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return userDAO; }
然後修改UserServiceImpl 類獲取userDAO物件的方式,改為private UserDAO userDAO = BeanFactory.getUserDAO();
package com.baizhiedu.basic; public class UserServiceImpl implements UserService { //private UserDAO userDAO = new UserDAOImpl(); private UserDAO userDAO = BeanFactory.getUserDAO(); @Override public void register(User user) { userDAO.save(user); } @Override public void login(String name, String password) { userDAO.queryUserByNameAndPassword(name, password); } }