設計模式 簡單工廠 工廠方法 抽象工廠之小結與區別

2021-07-10 02:44:48 字數 764 閱讀 1046

middlekingt

:簡單工廠是用來生產」東西「的,那任何」東西「的子類,比如汽車,自行車,輪船,洗髮水都是可以被生產的,但此處簡單工廠的壓力太大了啊,任何」東西「的子類都可以被生產,負擔太重,所以一般對簡單工廠類也有種稱呼,叫」上帝類「。

而工廠方法模式就很好的減輕了工廠類的負擔,把某一類/某一種東西交由乙個工廠生產,同時增加某一類」東西「並不需要修改工廠類,只需要新增生產這類」東西「的工廠即可,使得工廠類符合開放-封閉原則。

對於」東西「的分類,有時候不能光是橫向的分類,從另乙個角度也是可以分類的,不知道這句話的意思能不能懂,打個比方:汽車可以根據品牌分為賓士、奧迪,也可以根據類別分為普通三廂車和suv車,如果用工廠方法來描述的話,賓士車工廠有乙個方法即生產賓士車,奧迪車工廠有乙個方法生產奧迪車,但在有多重分類的情形下,這樣寫已經不夠用,不符合實際了,這個時候需要用到抽象工廠模式,即奧迪車工廠有兩個方法,乙個方法是生產普通三廂奧迪車,另乙個方法是生產suv奧迪車。賓士車工廠有兩個方法,乙個方法是生產普通三廂賓士車,另乙個方法是生產suv賓士車。

上面即工廠方法模式和抽象工廠模式的應用場景,因為這兩者很像,所以概念上不容易區分,可以這麼說,工廠方法模式是一種極端情況的抽象工廠模式,而抽象工廠模式可以看成是工廠方法模式的一種推廣。

再說下抽象工廠模式,此處的抽象工廠介面應該是有兩個方法,乙個是生成普通三廂車,乙個是生產suv車,可以說,生產的」東西「已經被限定住了,因此你不能生產某品牌汽車外的其他」東西「,因而可以理解成使用抽象工廠模式不能新增新的」東西「(在簡單工廠和工廠方法中理論上都是可以新增任意」東西「的)

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

簡介 工廠方法模式分為 簡單工廠模式 工廠方法模式 抽象工廠方法模式 簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 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,生產惠普滑鼠。工廠模式也就是滑鼠工廠是個父類,有生產滑鼠這個介...