工廠模式,比較常用,屬於建立型模式,也就是主要是用來建立物件的。工廠模式,有三種,主要分為:
其中,本文要講的就是,簡單工廠模式,但是簡單工廠模式,並不是屬於gof
講的23種設計模式中。簡單工廠模式,也叫靜態工廠方法模式。簡單而言,就是有乙個具體的工廠類,用來生產不同型別的物件,而這些物件,都有相似的特點,它們都實現同乙個介面。
什麼時候應該使用工廠模式?為什麼需要工廠模式呢?
工廠模式主要是用來生成不同的物件,也就是遮蔽了物件生成的時候的複雜性,使用的時候不需要知道物件是怎麼生成的,而只需要關注要生成什麼物件。如果構造乙個物件特別的費勁,而我們又經常需要構造生成這個物件,那麼使用工廠模式是比較有利的。我們都知道,設計模式主要就是為了設計出更加簡潔,易懂,方便維護,方便拓展的**。
如果乙個很複雜的物件,要在多個地方構建,那麼要是改動一次,我們就需要找出所有引用的地方,逐一修改,那會很麻煩。
簡單工廠模式主要有三種角色:
假設現在有乙個果園,用來種植各種水果,但是每一種水果種植的方式又不一樣。首先,先定義乙個介面fruit
:
public
inte***ce
fruit
public
class
implements
fruit
}
public
class
pear
implements
fruit
}
public
class
orange
implements
fruit
}
建立乙個工廠類:
public
class
fruitfactory
elseif(
"pear"
.equalsignorecase
(name)
)elseif(
"orange"
.equalsignorecase
(name)
)return null;
}}
測試**如下:
public
class
fruittest
}
測試結果如下:
case
即可。
優點:
凡事都有優劣,簡單工廠方法的缺點在於:
從以上的優劣,我們可以知道,其實如果產品建立過程比較複雜,而且個數不多,都是依靠某些引數來建立的話,抽象出簡單工廠模式,其實是比較有利的一種做法。
設計模式(2) 簡單工廠模式
簡單工廠模式的實質是由乙個工廠類根據傳入的引數,動態決定應該建立哪乙個產品類 這些產品類繼承自乙個父類或介面 的例項。工廠 creator 角色 簡單工廠模式的核心,它負責實現建立所有例項的內部邏輯。工廠類的建立產品類的方法可以被外界直接呼叫,建立所需的產品物件。抽象產品 product 角色 簡單...
設計模式2 簡單工廠模式
可維護,可復用,可擴充套件,靈活性好 通過繼承,封裝,多型將程式的耦合度降低 將計算機的計算過程獨立 為乙個功能 a.將 計算過程抽象為基類 抽象類,b.加減乘除四個子類繼承 基類 c.um 簡單工廠 繼承 空心三角形 實線 介面 空心三角形 虛線 依賴 虛線 箭頭 關聯 實線 箭頭 組合關係 實心...
設計模式(2) 簡單工廠設計模式
簡單工廠設計模式不屬於23種設計模式,但通過它可以更好的學習工廠方法設計模式和抽象工廠設計模式。簡單工廠設計模式流程 1 將需要的不同物件的相關 封裝到不同的類中,這些類成為產品類。2 將它們相同的 封裝到乙個抽象類產品類中,每乙個產品類都是這個抽象產品類的子類 3 最後提供乙個工廠類,在工廠類中提...