設計模式 工廠演化

2021-06-22 13:05:02 字數 1366 閱讀 5922

在建立型設計模式,最大的特點就是把,封裝了物件的例項化過程!本文主要試說一下工廠的演化:簡單工廠,工廠方法,抽象工廠。

我把設計模式的應用放到乙個遊戲場景的建立上,

在遊戲場景中,需要建立牆,根據場景不同有現代、古代等不同的牆。可以得到以下的關係,

modernwall

和classicalwall

有共同的牆父類

如果僅僅只有兩種或者固定的幾種子類

wall

,可用簡單工廠模式,引入工廠類,將牆例項化過程,封裝其中,可根據主要例項化要求「年代」作為傳入引數,動態例項化物件。

但如果,要新增牆子類,就要去修改引入的工廠類(

******factory

),這就違背了「開放

-封閉」原則。既然把所有子類例項的建立封裝到乙個工廠類破壞原則,那就把每個子類例項建立過程都交給各自相應的工廠。

然後,抽象出乙個工廠介面;當需要建立某例項時,由各自的工廠類去實現該工廠介面來建立例項,即:工廠類決定了例項化哪個產品類(哪種牆)。

經過這樣的一番演化,這就成了工廠方法模式。

但遊戲場景中,不但但有牆,還有房子,同樣對於年代,也要創建立

最明顯的特徵是可以按照系列進行分類

,如下圖:

對於工廠方法

,每新增乙個子類

,就要新增乙個工廠.

如果,按照系列建立系列工廠

並且對工廠抽象出介面,當使用哪個系列物件的時候,就選擇相應系列的工廠去實現介面來建立物件。

這就是抽象工廠了!

生活中的設計模式 工廠模式的演化

1 混沌初開階段 張 三 李四 王五合住一套公寓,每天早上,大家自己準備早餐,重複勞動,效率低下。2 專業分工階段 經商議,決定由張三統一負責早餐,其他人只需要向他購買即可,工廠雛形的概念出現了。3 提公升效率階段 張三為了提公升效率,購買了九陽豆漿機,可以生成豆漿 花生漿 玉公尺漿等各類產品,改善...

設計模式 工廠設計模式

用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...

設計模式 工廠設計模式

工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...