設計模式——工廠模式分析

設計模式——工廠模式分析

一、工廠模式優點

    工廠模式主要是爲創建對象提供過渡接口,以便將創建對象的具體過程屏蔽隔離起來,達到提高靈活性的目的工廠模式根據抽象程度的不同分爲三種:簡單工廠模式(靜態工廠模式)、工廠方法模式、抽象工廠模式。工廠模式是編程中經常用到的一種模式主要優點有:

    A可以使代碼結構清晰,有效地封裝變化。在編程中,產品類的實例化有時候是比較複雜和多變的,通過工廠模式,將產品的實例化封裝起來,使得調用者根本無需關心產品的實例化過程,只需依賴工廠即可得到自己想要的產品。

    B對調用者屏蔽具體的產品類。如果使用工廠模式,調用者只關心產品的接口就可以了,至於具體的實現,調用者根本無需關心。即使變更了具體的實現,對調用者來說沒有任何影響。

    C降低耦合度。產品類的實例化通常來說是很複雜的,它需要依賴很多的類,而這些類對於調用者來說根本無需知道,如果使用了工廠方法,我們需要做的僅僅是實例化好產品類,然後交給調用者使用。對調用者來說,產品所依賴的類都是透明的。

    抽象工廠模式是工廠方法模式的升級版本,用來創建一組相關或者相互依賴的對象。與工廠方法模式的區別就在於,工廠方法模式針對的是一個產品等級結構;而抽象工廠模式則是針對的多個產品等級結構。在編程中,通常一個產品結構,表現爲一個接口或者抽象類,工廠方法模式提供的所有產品都是衍生自同一個接口或抽象類,而抽象工廠模式所提供的產品則是衍生自不同的接口或抽象類。

在抽象工廠模式中,有一個產品族的概念:所謂的產品族,是指位於不同產品等級結構中功能相關聯的產品組成的家族。抽象工廠模式所提供的一系列產品就組成一個產品族;而工廠方法提供的一系列產品稱爲一個等級結構。

二、不同工廠模式的異同

1工廠方法模式特點

工廠方法模式特點:

 一個抽象產品類,可以派生出多個具體產品類。   
    一個抽象工廠類,可以派生出多個具體工廠類每個具體工廠類只能創建一個具體產品類的實例。

2、抽象工廠模式特點

抽象工廠模式特點
    多個抽象產品類,每個抽象產品類可以派生出多個具體產品類。   
    一個抽象工廠類,可以派生出多個具體工廠類每個具體工廠類可以創建多個具體產品類的實例。 

3、工廠方法模式與抽象工廠模式區別

 工廠方法模式只有一個抽象產品類,而抽象工廠模式有多個。   
    工廠方法模式的具體工廠類只能創建一個具體產品類的實例,而抽象工廠模式可以創建多個。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章