天天看點

簡單工廠模式:選擇實作

簡單工廠定義及本質

定義:提供一個建立對象執行個體的功能,而無須關心具體實作。被建立執行個體的類型可以是接口、抽象類,也可以是具體的類。
本質:選擇合适的實作類。
結構示意圖:           
簡單工廠模式:選擇實作

UML類圖

簡單工廠模式:選擇實作

調用時序圖

簡單工廠模式:選擇實作

優缺點

關于接口:

(1)接口定義:接口是一種特殊的抽象類,接口所有方法都是抽象方法,所有屬性都是常量,沒有任何方法實作。

(2)接口作用:接口用來定義實作類的外觀,即實作類的行為定義,用來限制實作類的行為。

(3)接口思想:“封裝隔離”,“接口是系統可插拔的保證”。

(4)接口與抽象類的選擇:應優先選用接口;即要定義子類的行為,又要為子類提供公共功能時應選用抽象類。

工廠是跟接口與實作類在一起的,它處于封裝體内部,與知道實作類沒有關系。

工廠模式優點:

(1)封裝隔離

封裝:指“對被隔離體的行為封裝”或“對被隔離體的職責的封裝”;
    隔離:指外部調用和内部實作,即外部調用隻能通過接口進行調用,而不需知道内部具體實作;           

(2)解耦

實作了用戶端和具體實作類的解耦。用戶端通過工廠擷取所需要的接口對象。           

工廠模式缺點:

(1)增加用戶端的複雜度:用戶端需要知道工廠所提供的參數代表的具體功能和含義;

(2)不便于擴充子工廠:工廠類私有化了構造方法,隻通過靜态方法建立接口,不能再通過寫子類改變接口的方法行為。

繼續閱讀