天天看點

設計模式------------抽象工廠

設計模式總覽

設計模式------------抽象工廠

優點:

提供了很好的封裝性!對于客戶來說,完全不用關心每個産品的具體類,隻需要知道産品的抽象接口!這也正是面向接口程式設計!

支援系列拓展!從圖中可以看出,現在有兩個系列,系列1,和系列2。假如現在要對系列進行拓展,添加系列3,可以直接寫相應的具體類,很好的迎合了開閉原則。

缺點:

優點中提到了它能很好的适應系列拓展。但相反他對産品種類的拓展無能為力。現在假如要添加ProductC,Oh my god!這下麻煩了,要修改整個工廠結構,包括工廠抽象接口和具體的工廠類!

作用:

從優缺點中可以推出,抽象工廠常用來處理多個系列的抽象。如我們的windows主題,每個主題都是一個系列。又如UI的look and feel,每種風格就對應一個系列。當有多個系列且我們在同一時間隻能使用其中一種時,就可以用抽象工廠來實作。

繼續閱讀