1. 程式人生 > 實用技巧 >手寫一個簡單的工廠模式(二)

手寫一個簡單的工廠模式(二)

圖中這裡仍然是耦合的

所以首先在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);
    }
}