大資料專案實戰之十一:11.工廠模式講解以及DAOFactory開發
阿新 • • 發佈:2018-12-02
如果沒有工廠模式,可能會出現的問題:
ITaskDAO介面和TaskDAOImpl實現類;實現類是可能會更換的;那麼,如果你就使用普通的方式來建立DAO,比如ITaskDAO taskDAO = new TaskDAOImpl(),那麼後續,如果你的TaskDAO的實現類變更了,那麼你就必須在你的程式中,所有出現過TaskDAOImpl的地方,去更換掉這個實現類。這是非常非常麻煩的。
如果說,你的TaskDAOImpl這個類,在你的程式中出現了100次,那麼你就需要修改100個地方。這對程式的維護是一場災難。
工廠設計模式
對於一些種類的物件,使用一個工廠,來提供這些物件建立的方式,外界要使用某個型別的物件時,就直接通過工廠來獲取即可。不用自己手動一個一個地方的去建立對應的物件。
那麼,假使我們有100個地方用到了TaskDAOImpl。不需要去在100個地方都建立TaskDAOImpl()物件,只要在100個地方,都使用TaskFactory.getTaskDAO()方法,獲取出來ITaskDAO介面型別的物件即可。
如果後面,比如說MySQL遷移到Oracle,我們重新開發了一套TaskDAOImpl實現類,那麼就直接在工廠方法中,更換掉這個類即可。不需要再所有使用到的地方都去修改。
/** * DAO工廠類 */ public class DAOFactory { /** * 獲取任務管理DAO * @return DAO */ public static ITaskDAO getTaskDAO() { return new TaskDAOImpl(); } }
/** * 任務管理DAO測試類 */ public class TaskDAOTest { public static void main(String[] args) { ITaskDAO taskDAO = DAOFactory.getTaskDAO(); Task task = taskDAO.findById(2); System.out.println(task.getTaskName()); } }