例1:思路:
蘋果類,包含獲取蘋果的方法。
香蕉類,包含獲取香蕉的方法。
主類:建立蘋果例項,香蕉例項,分別呼叫獲取方法。
改進1:
有共同方法-》抽象出乙個水果介面
改進2:
建立出乙個水果工廠, 完成獲取蘋果,獲取香蕉的行為。
優勢:主類只需要建立乙個工廠類即可。
改進3:
將水果工廠中的獲取方法設定成靜態。
優勢:呼叫類不需要建立物件,可直接呼叫裡面的方法。
改進4:
將工廠中的獲取放到乙個方法中,根據傳入的型別獲取不同的產品
改進5:
將工廠類中的獲取方法由條件判斷改為反射,可減少工廠**的修改
缺點:傳入的引數不靈活。
總結:所有的產品通過工廠來獲取。
該模式缺陷,隨著功能例項的擴充,需要不斷的改寫工廠類,**繁多,(反射可解決,但傳參麻煩)。
該部分**已上傳:
運用:資料庫分很多,比如mysql,oracle,等等。
使用jdbc時就用到了這種反射機制,如:通過class.forname("com.mysql.jdbc.driver")來獲取mysql的具體例項來進行操作;
安卓原始碼中的簡單工廠模式:
部落格中就講到了兩種簡單工廠模式的運用,可以自己參考。
同時另一篇**也有講解。
同時將bitmapfactory寫了乙個運用的小demo:
IOS設計模式之工場模式
在基類中定義建立物件的乙個介面,讓子類決定實列化那個類.工廠方法讓乙個類的實列化延遲到子類進行.工廠方法解決的問題是 物件的建立時機,它提供了一種擴充套件的策略,很好的符合了開放封閉原則.將工廠和產品都抽象出乙個基類,在基類中定義統一的介面,然後再具體的工廠同建立具體的產品.與直接建立新的具體物件相...
抽象工場模式
在工廠方法模式中,我們使用乙個工廠建立乙個產品,也就是說乙個具體的工廠對應乙個具體的產品。但是有時候我們需要乙個工廠能夠提供多個產品物件,而不是單一的物件,這個時候我們就需要使用抽象工廠模式。抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的,抽象工廠迷失可以向客戶端提供乙個介面,使得客戶端在...
android設計模式
一句話總結23種設計模式 目錄android的設計模式 設計模式的六大原則 一句話總結23種設計模式則 建立型模式 android的設計模式 單例模式 android的設計模式 建造者模式 android的設計模式 工廠方法模式 android的設計模式 簡單工廠模式 android的設計模式 抽象...