android設計模式 簡單工場模式

2021-07-25 02:41:32 字數 716 閱讀 4698

例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的設計模式 抽象...