【簡單工廠模式】設計模式
簡單工廠模式也叫作靜態工廠方法(Static Factory Method)模式,但不屬於23種GOF設計模式之一。spa
一、優勢。設計
經過使用工廠類,外界能夠從直接建立具體產品對象的尷尬局面擺脫出來,僅僅須要負責「消費」對象就能夠了。而沒必要管這些對象究竟如何建立及如何組織的.明確了各自的職責和權利。對象
二、缺點。blog
因爲工廠類集中了全部實例的建立邏輯,違反了高內聚責任分配原則,將所有建立邏輯集中到了一個工廠類中;它所能建立的類只能是事先考慮到的,若是須要添加新的類,則就須要改變工廠類了。接口
三、點評開發
在實際應用中,沒有人會使用這種經典的簡單工廠模式。一般會將 Type 成爲 Product 的一個屬性,工廠根據 Type,生成對應的 Product,從而避免工廠耦合Product。get
【工廠方法模式】產品
將一個工廠,拆分紅了多個工廠。每一個工廠分別負責不一樣的產品。it
工廠方法模式保持了簡單工廠模式的優勢,並且克服了它的缺點。但工廠方法模式的缺點是每增長一個產品類,就須要增長一個對應的工廠類,增長了額外的開發量。
一、點評
本模式將Simple Factory中的 Type 拆分了成各個SubFactory,每一個 SubFactory管理一個Type。這樣作解保持了開閉原則。可是使用方Client須要根據不一樣的Type,選擇不一樣的Factory。
【抽象工廠模式】
定義:爲建立一組相關或相互依賴的對象提供一個接口,並且無需指定他們的具體類。
1,首先從簡單工廠進化到工廠方法,是由於工廠方法彌補了簡單工廠對修改開放的弊端,即簡單工廠違背了開閉原則。
2,從工廠方法進化到抽象工廠,是由於抽象工廠彌補了工廠方法只能創造一個系列的產品的弊端。