工廠方法和抽象工廠的區別

2021-10-20 18:22:11 字數 485 閱讀 6414

區別:工廠方法裡面產品分為抽象基類和乙個具體實現的子類;而抽象工廠將具體實現子類進行了模組化的細分,有多個抽象產品類 ,具體工廠類能建立多個具體產品類的例項。

我從一下幾個方面來理解抽象工廠和工廠方法不同點

抽象工廠更像乙個複雜版本的策略模式,策略模式通過更換策略來改變處理方式或者結果;而抽象工廠的客戶端,通過更改工廠還改變結果。所以在使用的時候,就使用客戶端和更換工廠,而看不到產品本身。

工廠方法目的是生產產品,所以能看到產品,而且還要使用產品。當然,如果產品在建立者內部使用,那麼工廠方法就是為了完善建立者,從而可以使用建立者。另外建立者本身是不能更換所生產產品的。

抽象工廠的工廠類就做一件事情生產產品。生產的產品給客戶端使用,絕不給自己用。

工廠方法生產產品,可以給系統用,可以給客戶端用,也可以自己這個類使用。自己這個類除了這個工廠方法外,還能有其他功能性的方法

其實仔細想想,這個兩個模式是有交集的,在極端的情況下,這兩個模式其實是一樣的。所以可以這樣理解

簡單工廠,工廠方法和抽象工廠的區別

看了網路上很多關於設計模式的方法,有的模式看起來相似,但本質還是區別很大的.像簡單工廠,工廠方法和抽象工廠就有很明顯的區別.有乙個比較好理解的例子,在這跟大家介紹下 1.如果乙個後花園只種蔬菜類,那麼就用簡單工廠就可以了.2.如果後花園蔬菜品種繁多.得用工廠方法才可以,把共有的東西抽象出來.3.如果...

簡單工廠 工廠方法和抽象工廠的區別

1 簡單工廠模式 定義乙個工廠類,它可以根據引數的不同返回不同類的例項,被建立的例項通常都具有共同父類。因為在簡單工廠模式中用於建立例項的方法是靜態方法,所以簡單工廠模式也可以稱為靜態工廠方法模式,是一種類建立型模式。在簡單工廠模式中,工廠類只生產一類產品,所有具體的產品的建立都集中於工廠類中,根據...

工廠方法和抽象工廠區別

簡單工廠 簡單工廠沒有抽象類,只有乙個具體工廠類如myfactory,myfactory裡面有個工廠方法createproduct返回乙個基類產品,具體返回什麼例項通過傳入引數判斷。用手機生產做個例子 比如nokia簡單工廠就是只有nokiafactory工廠類,工廠方法就是createnokiap...