【注】本文還有待修改,現在只提供源碼 和 簡單分析,后續會做詳細說明
1.為什么要使用抽象工廠,一個案例告訴你,對照下面這張圖,來看案例
問題:
1.UI展示有時候,需要調用業務A,有時候要調用業務B 2.而業務A,可能使用了MSSQL數據庫,也有可能使用了Oracle數據庫 3.不管MSSQL數據層,還是Oracle數據層,他們用到的實體都是一樣,且數據庫需要的方法也類似 |
分析并解決
1.首先,我們肯定需要一個數據層,那么這個數據層由誰來創建,由誰來調用 【數據層由數據工廠創建 并 賦值給數據層接口,然后由具體的業務層調用】 2.而不同數據庫,會對應不同的工廠,那我們要使用哪個工廠 【通過數據工廠父類,再根據配置文件,可以得到我們需要的數據層對象】 3.然后,我們就需要一個業務層,那么這個業務層由誰來創建,由誰來調用 【業務層由業務工廠創建 并 賦值 給業務層接口,然后由表示層調用】 4.而不同業務,會對應不同的工廠,那我們要使用哪個工廠 【通過業務工廠父類,再根據配置文件,可以得到我們需要的業務層對象】 5.有了業務層,那么怎么調用呢 【在表示層,通過業務工廠父類,創建業務工廠對象】 【再由業務工廠對象,創建業務層對象】 【最后由業務層對象,調用我們需要的方法 】 6.得出結論 【各層都只調用接口,具體實現由工廠來實現】 |
2.按照以上 分析,我們就開始寫代碼,大家可以按照上面分析,以及對照代碼,理解一下,不懂的話,歡迎交流
3.源碼地址
源碼下載
|
新聞熱點
疑難解答