設計模式 簡單工廠 工廠方法和抽象工廠

2021-07-02 02:03:42 字數 934 閱讀 1277

簡單工廠、工廠方法和抽象工廠三種設計模式都用來幫助我們將物件的例項化部分抽取出來,優化系統結構,在開發中經常使用。三者既有區別,也有聯絡,今天來對這三種設計模式做乙個簡單的記錄。

一般來說,利用乙個靜態方法,即將createproduct方法設定為static,將我們所需要的產品型別傳入函式引數中(type),在方法內部利用switch/case幫助我們建立產品(product)。

對於這種方式,如果我們想要增加新的產品,首先需要實現product介面,其次還需要修改******factory下的createproduct方法。

可以看到與簡單工廠的不同,我們每乙個factorymethod的實現類只對應生成一種產品,就是說,這裡是生成固定產品的。

對於增加新的產品,我們只需實現product介面,並建立乙個新的factorymethod實現類去幫助我們建立該產品,而不需要修改其他**。

對於抽象工廠來說,它被用來生產不同產品族的全部產品。可以這麼理解,producta和productb是兩個不同的品牌,而這兩個品牌之下都擁有兩個相同型別的產品one和two。例如華為和中興是兩個不同的品牌,它們旗下均生產手機和路由器兩個系列的產品,那麼華為和中興就對應的是a和b,而手機和路由器就對應了one和two。

這樣我們想要增加乙個新的產品族,即乙個新的系列three時,只需建立factorythree實現abstractfactory,同時在相應的品牌之下新增新系列的產品即可。但我們需要新增新的品牌時就需要改動**了。

設計模式 簡單工廠 工廠方法 抽象工廠方法模式

簡介 工廠方法模式分為 簡單工廠模式 工廠方法模式 抽象工廠方法模式 簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的實 uml圖示例 public class ...

設計模式 簡單工廠 工廠方法 抽象工廠

典型的介面和實現類如下,我們要根據相應的需求建立出不同的物件。public inte ce animal public class catimplements animal public class dogimplements animal public class animalfactory el...

設計模式 簡單工廠 工廠方法 抽象工廠

引言 最近發現一篇講解工廠模式比較簡易明了的文章,內容如下,原文連線為 簡單工廠模式 簡單工廠模式不是 23 種裡的一種,簡而言之,就是有乙個專門生產某個產品的類。比如下圖中的滑鼠工廠,專業生產滑鼠,給引數 0,生產戴爾滑鼠,給引數 1,生產惠普滑鼠。工廠模式也就是滑鼠工廠是個父類,有生產滑鼠這個介...