工廠模式和抽象工廠模式的區別!

2021-09-24 04:18:38 字數 601 閱讀 1735

這篇文章適用於了解簡單工廠模式、工廠模式、抽象工廠模式的同學。

那麼我個人認為,工廠模式和抽象工廠模式的本質區別在於兩個點:

1、業務需求:

如果業務需求是廠商只賣電腦,那工廠模式完全ok,全部實現createcompute()就行了。

如果業務需求是廠商不僅僅賣電腦,還賣手機,那就得使用抽象工廠模式,實現createcompute(),createphone()。

說到這裡你會不會跟我有乙個一樣的疑問,抽象工廠與工廠的區別僅僅只是在介面上多加了乙個方法而已!

你還是沒說明它們有什麼區別,那麼看到第二點!

2、業務需求變更(拓展)起來的花費成本:

我以上面的抽象工廠模式為例,假設此時我不僅僅讓廠商賣電腦、手機,我還要它們賣肥皂!

抽象工廠這下懵逼了,自己的介面要新增乙個createsoap(),造成的影響是極大的,所有實現了這個介面的實現類

都必須實現這個方法,xiaomi廠商、huawei廠商、iphone廠商。

那麼使用工廠模式有什麼好處呢?工廠模式不關心你的產品族,它根本不會遇到別人要他賣肥皂的情況,他

只願意賣電腦。要是你再來乙個lg廠商,那就再寫乙個實現類重寫createcompute()即可。

抽象工廠和工廠模式的區別

工廠模式 定義乙個用於建立物件的介面,讓子類決定例項化那乙個類,使乙個類的例項化延遲到子類。它有個特點,就是通常工廠的類層次與產品的類層次幾乎是一樣的,如果說工廠是你的影子,你就是產品了。抽象工廠模式是所有形態的工廠模式中最為抽象和最具體一般性的一種形態。抽象工廠模式是指有多個抽象角色時,使用的一種...

工廠模式和抽象工廠模式

當client不知道要建立哪乙個具體類的例項,或者不想在client 中指明要具體建立的例項 換句話說就是計畫在不同條件下建立不同的例項。在這種情況下,適合使用個工廠模式。工廠模式可以視作是乙個虛擬的構造器,主要思路是定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲...

抽象工廠模式和工廠方法模式區別

首先來看看這兩者的定義區別 工廠模式 定義乙個用於建立物件的藉口,讓子類決定例項化哪乙個類 抽象工廠模式 為建立一組相關或相互依賴的物件提供乙個介面,而且無需指定他們的具體類 個人覺得這個區別在於產品,如果產品單一,最合適用工廠模式,但是如果有多個業務品種 業務分類時,通過抽象工廠模式產生需要的物件...