工廠模式講解以及DAOFactory開發
如果沒有工廠模式,可能會出現的問題:
ITaskDAO介面和TaskDAOImpl實現類;實現類是可能會更換的;那麼,如果你就使用普通的方式來建立DAO,比如ITaskDAO taskDAO = new TaskDAOImpl(),那麼後續,如果你的TaskDAO的實現類變更了,那麼你就必須在你的程式中,所有出現過TaskDAOImpl的地方,去更換掉這個實現類。這是非常非常麻煩的。
如果說,你的TaskDAOImpl這個類,在你的程式中出現了100次,那麼你就需要修改100個地方。這對程式的維護是一場災難。
工廠設計模式
對於一些種類的物件,使用一個工廠,來提供這些物件建立的方式,外界要使用某個型別的物件時,就直接通過工廠來獲取即可。不用自己手動一個一個地方的去建立對應的物件。
那麼,假使我們有100個地方用到了TaskDAOImpl。不需要去在100個地方都建立TaskDAOImpl()物件,只要在100個地方,都使用TaskFactory.getTaskDAO()方法,獲取出來ITaskDAO介面型別的物件即可。
如果後面,比如說MySQL遷移到Oracle,我們重新開發了一套TaskDAOImpl實現類,那麼就直接在工廠方法中,更換掉這個類即可。不需要再所有使用到的地方都去修改。
下面在上一篇在做一次修改
public class DAOFactory {
/**
* 獲取任務管理DAO
* @return DAO
*/
public static ITaskDAO getTaskDAO() {
return new TaskDAOImpl();
}
}
下面編寫一個test 測試下
public class Test {
public static void main(String[] args) {
ITaskDAO taskDAO= DAOFactory.getTaskDAO();
Task task=taskDAO.findById(10000001L);
if(task!=null){
System.out.println(task.getTaskName());
}
}
}
輸出結果
test
本文轉載自【傳送門】
相關文章
- 例項講解Java工廠模式Java模式
- 工廠模式講解, 引入Spring IOC模式Spring
- 設計模式:用實際案例講解工廠模式設計模式
- C# interface以及工廠模式C#模式
- 工廠模式 詳解模式
- 簡單工廠模式、工廠模式、抽象工廠模式比較模式抽象
- 簡單工廠模式—>工廠模式模式
- 玩轉 iOS 開發:《iOS 設計模式 — 工廠模式》iOS設計模式
- 一篇搞定工廠模式【簡單工廠、工廠方法模式、抽象工廠模式】模式抽象
- 設計模式之工廠模式!深入解析簡單工廠模式,工廠方法模式和抽象工廠模式設計模式抽象
- 設計模式-簡單工廠、工廠方法模式、抽象工廠模式設計模式抽象
- 工廠模式之簡單工廠模式模式
- C# 設計模式(1)——簡單工廠模式、工廠模式、抽象工廠模式C#設計模式抽象
- 設計模式-工廠模式二(工廠方法模式)設計模式
- 設計模式詳解——工廠模式(二)設計模式
- 簡單工廠模式和抽象工廠模式模式抽象
- 工廠模式(簡單工廠模式)快速理解模式
- 建立型:工廠模式-工廠方法、抽象工廠模式抽象
- 設計模式之工廠方法模式|抽象工廠模式設計模式抽象
- 工廠模式模式
- 簡單工廠模式、工廠方法模式和抽象工廠模式有何區別?模式抽象
- 簡單工廠和工廠模式模式
- 抽象工廠模式-與-工廠方法模式區別抽象模式
- 簡單工廠、工廠方法和抽象工廠模式抽象模式
- 【Java】簡單工廠模式、工廠模式、介面卡模式Java模式
- 設計模式學習(二)工廠模式——抽象工廠模式設計模式抽象
- 工廠模式 抽象模式模式抽象
- 設計模式(五)抽象工廠模式詳解設計模式抽象
- python開發中常用的設計模式(簡單工廠模式)Python設計模式
- 工廠方法模式與抽象工廠模式的區別模式抽象
- 設計模式-建立型模式-工廠模式(工廠三兄弟) TypeScript設計模式TypeScript
- Java 設計模式之工廠方法模式與抽象工廠模式Java設計模式抽象
- 建立型:工廠模式-簡單工廠模式
- 簡單工廠和工廠方法模式模式
- java 工廠模式Java模式
- golang 工廠模式Golang模式
- 工廠模式理解模式
- PHP工廠模式PHP模式