三種工廠模式彙總

工廠模式分爲三種:簡單工廠、工廠模式和抽象工廠模式。三者之間存在哪些異同呢?先分別看看各個模式的特點

一、     簡單工廠模式:

實現了算法和界面的分離,也就是將業務邏輯和界面邏輯分開了,降低了耦合度。

算法的封裝:  定義一個抽象的算法接口,提供不同算法的公共接口方法。其他具體算法繼承這個抽象類,並實現具體的算法。

簡單工廠類:  作爲一個獨立的類,實現了針對不同的算法進行實例化。

簡單工廠的UML圖:

2011年11月08日 - 李黎敏 - 李黎敏

  

二、     工廠模式:

    定義一個用於創建對象的接口,讓子類決定實例化哪一個類。  遵循了開放—封閉原則。

工廠模式的UML圖:

 

2011年11月08日 - 李黎敏 - 李黎敏

 

簡單工廠與工廠模式的共同優點:

       都集中封裝了對象的創建,使得要更換對象時不需要做大的改動就可實現,降低了客戶端程序與產品對象的耦合。

 

工廠模式PK簡單工廠模式:

1工廠模式的優點:

工廠模式是簡單工廠模式的進一步抽象和推廣。它遵循了“開放—封閉”原則。

2簡單工廠模式的優點:

簡單工廠模式最大的優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態實例化相關的類,對於客戶端來說,去除了與具體產品的依賴。

3工廠模式的缺點:

工廠方法把簡單工廠的內部邏輯判斷轉移到了客戶端代碼來執行;每增加一產品就要增加一個產品工廠的類,增加了額外的開發量。

4簡單工廠的缺點:

是沒有遵守開放—封閉原則。所謂的“開放-封閉”原則就是開放接口,封閉修改。如果將來需要添加一個開方的算法,那麼,在簡單工廠模式中,就必須在簡單工廠類中添加相應的判斷語句!另外,在簡單工廠類中利用了Switch語句,這對程序的擴展本身就不不利。

三、     抽象工廠模式:

  提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。

  UML結構圖: 

2011年11月08日 - 李黎敏 - 李黎敏

 

工廠模式和抽象工廠的區別:

只有一個User類和User操作類的時候,只需要工廠方法模式; 但數據庫中有很多的表,而Sqlaccess又是兩大不同的分類,所以就延伸到了抽象工廠模式

  抽象工廠模式的優點:

    1、易於交換產品系列,由於具體工廠類,在一個應用程序中只需要在初始化的時候出現一次, 這就使得改變一個應用的具體工廠變得非常容易,它只需改變具體工廠即可使用不同的產品配置。

    2、它讓具體的創建實例過程與客戶端分離,客戶端是通過他們的抽象接口操縱實例,產品的具體類名也被具體工廠的實現分離,不會出現在客戶端代碼中。

  抽象模式的缺點:

    1、抽象模式雖然便於兩數據庫之間的切換,但是不便於增加需求功能。

2、如果有100個調用數據庫訪問的類,就需要多次實例化100此具體工廠類。

抽象工廠模式、反射以及配置文件:

    反射方法的實質是在對象實例化的時候傳引用,將程序由編譯時轉爲運行時,通過字符串變量來處理,去除了、switch判斷的麻煩。但是如果數據庫在更換時,還需要去修改程序(字符串的值)重編譯。

    通過添加配置文件可以解決更改DataAccess的問題。

原文地址:http://lvxingzhelimin.blog.163.com/blog/static/170716550201110852956542/

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