天天看點

Java設計模式詳解,抽象工廠模式是怎麼回事?

作者:千鋒教育

前言

本文主要講述設計模式中的抽象工廠模式,文中使用通俗易懂的案例,使你更好的學習本章知識點并了解原理,做到有道無術。

一.什麼是抽象工廠模式

抽象工廠是23種設計模式中建立型模式的一種,抽象工廠是由多個工廠組合而成。

上一章江帥提到的工廠模式隻存在一個抽象角色,而抽象工廠是指當有多個抽象角色時使用的一種工廠模式。如果說工廠模式像是一個公司,而抽象工廠模式則是多個公司組合起來的企業。

二.生活中的抽象工廠模式

1.華為

華為手機、華為電腦是我們所熟悉的,生産手機的話咱們需要一個工廠,專門生産手機相關的配件;生産華為電腦也需要有對應的工廠,專門生産電腦相關的配件。而多個工廠生成的産品都是華為産品,整體就像是設計模式中的抽象工廠。

Java設計模式詳解,抽象工廠模式是怎麼回事?

2.京東

京東是咱們國内電子商務領域受消費者歡迎和具有影響力的電子商務網站之一,江帥有挺多電子産品都是在京東上面購買的。線上銷售家電、數位通訊、電腦、家居百貨等等十幾種大類上萬品牌數百萬的産品。每一個大類子產品咱們可以看做是一個工廠,而由多個大類工廠組合而成的京東就像咱們設計模式中的抽象工廠模式了。

Java設計模式詳解,抽象工廠模式是怎麼回事?

3.中糧集團

中糧集團是咱們國内知名企業,生産很多食品相關的産品。比如說:大米、食用油、面粉、蜂蜜、堅果等等。一個集團生産如此多的産品,每個産品需要的生産環境和機械各不相同,是以需要有對應的工廠,比如生産大米的工廠,比如生産食用油的工廠,而擁有多個生産工廠組合而成的集團等同于設計模式中的抽象工廠模式。

Java設計模式詳解,抽象工廠模式是怎麼回事?

三.抽象工廠模式的實作

接下來我們以華為的産品手機和電腦來舉例,用抽象工廠模式來實作。先建立一個抽象工廠類華為類和抽象産品接口

Java設計模式詳解,抽象工廠模式是怎麼回事?

再建立四個具體的産品類P30手機類、P40手機類、MateBook 14電腦類和MateBook 15電腦類,都實作抽象産品接口

Java設計模式詳解,抽象工廠模式是怎麼回事?

再建立一個具體工廠類華為工廠類并繼承抽象工廠類華為類實作抽象方法

Java設計模式詳解,抽象工廠模式是怎麼回事?

最後我們通過抽象工廠模式擷取需要的對象

Java設計模式詳解,抽象工廠模式是怎麼回事?

四.總結

抽象工廠把具體的對象建立延遲到具體工廠子類中,把對象的建立封裝起來,減少用戶端與具體對象之間的依賴,降低了系統的耦合度,提高的後期的維護性。但是跟工廠模式一樣,添加新的産品需要修改抽象工廠的接口,違背了開閉原則。

下一章,我們将帶大家學習LEGO的快樂(設計模式之建造者模式),大家敬請期待~

Java之程式中的套路(設計模式的介紹)

Java課堂|獨一無二的事物(設計模式之單例模式)

Java課堂|餐飲的本質(設計模式之工廠模式)

繼續閱讀