1. 程式人生 > >Java設計模式——抽象工廠模式

Java設計模式——抽象工廠模式

抽象模式是圍繞一個超級工廠建立許多繼承他的小工廠來建立物件。屬於建立型模式。

在介紹模式之前先將兩個概念:產品結構和產品族

        什麼是產品結構呢?比如有一個類代表電視機,而電視機又有很多品牌(海爾、TCL、小米等),而這些電視品牌就是產品結構。

        那什麼是產品族呢?你家裡的電器不可能只有電視吧,咋地也得有個冰箱空調啥的吧。海爾他不光產電視,也有冰箱空調,而海爾品牌的電視、冰箱、空調就是產品族。族就是家族嘛,一個家族要姓氏一樣的。

        而族就是相當於一個個創造實體類的工廠,一個工廠裡有多個相同型別的物件。

        優點:    當一個產品族中多個物件被設計成一起工作時,他能保證客戶端只使用同一個產品族中的物件。

                       當你有多個物件之間需要相互作用,相互通訊時,只需要明顯地使用同一個型別的工廠建立即可。

        缺點:

                    產品族擴充套件非常困難,要增加一個系列的某一產品,既要在抽象的 Creator 里加程式碼,又要在具體的裡面加程式碼。

    注意事項:

                        產品族難擴充套件,產品等級易擴充套件。

實現: