Java設計模式——抽象工廠模式
阿新 • • 發佈:2019-01-02
抽象模式是圍繞一個超級工廠建立許多繼承他的小工廠來建立物件。屬於建立型模式。
在介紹模式之前先將兩個概念:產品結構和產品族
什麼是產品結構呢?比如有一個類代表電視機,而電視機又有很多品牌(海爾、TCL、小米等),而這些電視品牌就是產品結構。
那什麼是產品族呢?你家裡的電器不可能只有電視吧,咋地也得有個冰箱空調啥的吧。海爾他不光產電視,也有冰箱空調,而海爾品牌的電視、冰箱、空調就是產品族。族就是家族嘛,一個家族要姓氏一樣的。
而族就是相當於一個個創造實體類的工廠,一個工廠裡有多個相同型別的物件。
優點: 當一個產品族中多個物件被設計成一起工作時,他能保證客戶端只使用同一個產品族中的物件。
當你有多個物件之間需要相互作用,相互通訊時,只需要明顯地使用同一個型別的工廠建立即可。
缺點:
產品族擴充套件非常困難,要增加一個系列的某一產品,既要在抽象的 Creator 里加程式碼,又要在具體的裡面加程式碼。
注意事項:
產品族難擴充套件,產品等級易擴充套件。
實現: