設計模式學習 簡單工廠模式

2021-08-20 20:28:52 字數 1290 閱讀 5040

建立抽象產品類,定義所有產品的公共介面。

建立具體產品類,繼承於產品抽象類,

建立工廠類,在內部定義靜態方法,生產每個具體產品類的例項。

外部通過呼叫工廠類的靜態方法,並傳入引數來得到所需的產品。

某玩具工廠同時接到了三個不同客戶的訂單,需要生產一批玩具汽車、玩具飛機、玩具火車。於是工廠開設三條流水線進行生產作業。

**實現:

一、 建立抽象類,定義產品的公共介面

public

abstract

class product

二、建立各個具體產品類,繼承於抽象產品類,並實現父類的created方法。

public

class

toyproduct

extends

product

}public

class

aircraftproduct

extends

product

}public

class

trainproduct

extends

product

}

三、 建立工廠類,並提供乙個靜態方法來生產不同的產品,只需傳入對應客戶型別就可以生產客戶需要的產品。

public

class productfactory

return mproduct;}}

四、外部呼叫工廠類的靜態方法,並傳入客戶型別名稱得到產品物件並呼叫created方法。

public

class test catch (exception e)

try catch (exception e) }}

執行結果:

玩具汽車已經生產完畢

玩具火車已經生產完畢

玩具飛機已經生產完畢

沒有客戶4的產品

從結果上看出,在工廠類中並沒有定義「客戶4」的型別下,此時會丟擲異常,就此說明了使用簡單工廠模式,必須先清楚每個類的具體例項是什麼。否則,在外部呼叫傳入未定義的型別,則整個工廠類就會崩潰。

在知道了簡單工廠模式的優缺點,應用場景很明了了

感謝:

《大話設計模式》、《設計模式之禪》、《android高階之光》

設計模式學習 簡單工廠模式

今天把專案都做完後,就開始繼續學設計模式。剛看了簡單的工廠模式,感覺之前對物件導向這個概念實在是太淺了,在我的觀念中,一直認為程式只要能執行,沒有bug就是成功的,但是看了設計模式之後,發現原來的觀念實在是太表面化了,沒有深入的理解物件導向這個概念。我是看了 大話設計模式 這本書開始學的,感覺講的簡...

學習設計模式 簡單工廠模式

提供乙個能夠建立具有所需要的功能類的例項物件,而無需關心其內部是如何實現的,被建立的例項物件的型別可以是介面 抽象類或具體實現類。api 即所需要的所有功能介面 impl api的具體實現類,可以有多個 factory 工廠類,用於建立所需要的api的例項物件 client 通過factory來獲取...

設計模式 工廠模式(簡單工廠)

一 簡單工廠 定義 簡單工廠模式 factory pattern 屬於類的創新型模式,又叫靜態工廠方法模式 static factorymethod pattern 是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。特點 工廠類直接實現,乙個產品介面,乙個工廠類可以產生多...