tft每日頭條

 > 生活

 > 工廠模式和抽象工廠模式的描述

工廠模式和抽象工廠模式的描述

生活 更新时间:2024-11-30 12:48:46
設計模式的三種工廠模式是什麼?

設計模式是前輩們用經驗總結的可複用的,能夠解決一系列特定問題的一種編程設計思路,并不是語法規定,而是一種解決方案。

由GOF四人組收錄了23種設計模式,其中創建型最常見的就是工廠模式(主要是用來管理和創建實例),實際應該隻有工廠和抽象工廠兩種模式,但是還有一個針對工廠的簡化版本簡單工廠模式,雖然違反了開閉原則(即對擴展開放,對修改關閉的設計原則),但是在特定狀況下,簡單工廠也有其優勢的地方。

設計模式的三種工廠模式分别是:

簡單工廠模式:

角色:工廠角色,抽象産品角色,具體産品角色。

創建型,特點是由一個工廠決定了産品類的實例。

工廠模式:

角色:抽象工廠角色,抽象産品角色,具體産品角色。

創建型,特點是盡管每個産品都要有一個相應的工廠類,但是不會對整體代碼結構進行修改。

抽象工廠模式:

角色:抽象工廠角色,抽象産品角色,具體産品角色。

創建型,特點将共同部分封裝在抽象類中,不同部分則由子類實現,同樣不會對整體結構進行修改。

簡單工廠模式

上面那一大串說實話有點不說人話,本質上這三種模式都是為了解決創建實例的問題,因為創建實例是在是太麻煩了。

假設我有很多的類,但是在這個場景下我隻需要其中幾個,而且還是根據需求的不同随時變化,那麼我就需要一個能夠随時給我相應需求類的實例的一個方法。

那麼簡單工廠就誕生了。

工廠模式和抽象工廠模式的描述(總結設計模式中的三種工廠模式有那些不同)1

其簡單的構造确解決了很多問題,我能随心所欲的創建自己想要的實例,并且我不用去擔心實例的創建過程,我隻需要傳入參數,就能獲得對象并使用其方法。

工廠模式和抽象工廠模式的描述(總結設計模式中的三種工廠模式有那些不同)2

但需要注意的是,如果需要新增蘋果手機制造,那麼就要修個工廠類,如果頻繁的修改業務對于整個系統的維護将是一場災難。

那麼有沒有解決的方法呢?

工廠模式

那必然就是工廠模式了,相較于簡單工廠來說,工廠模式将産品和工廠一一對應,而把所有的工廠相同部分抽象的集合到一個超級工廠接口中去,那麼所有工廠都是這個超級工廠的子類,需要實現工廠模式的規範。

工廠模式和抽象工廠模式的描述(總結設計模式中的三種工廠模式有那些不同)3

這下來說雖然需要對調用者(客戶端)有一定的調整,但是對于整體的結構來說,不管新增多少個産品,都不影響結構,比如要新增一個蘋果手機,那麼隻需要同時新增蘋果工廠(實現create)和蘋果手機即可。

工廠模式和抽象工廠模式的描述(總結設計模式中的三種工廠模式有那些不同)4

這比簡單工廠模式有了一定的長進,但是如果此時不僅僅要生産手機了,還有平闆,那該怎麼辦?

诶,有辦法!

抽象工廠模式

工廠模式和抽象工廠模式的描述(總結設計模式中的三種工廠模式有那些不同)5

抽象工廠模式則是将相同的部分抽象封裝了,就像手機和平闆不同的業務線給封裝了,但是還是同屬于一個品牌之下,那麼就相當于品牌下有兩個分支手機和平闆。

工廠模式和抽象工廠模式的描述(總結設計模式中的三種工廠模式有那些不同)6


,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved