三種工廠模式區(qū)別總結

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

一、簡單工廠模式:

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

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

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

簡單工廠的UML圖:


二、?????工廠模式:

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

工廠模式的UML圖:



簡單工廠與工廠模式的共同優(yōu)點:

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


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

1、工廠模式的優(yōu)點:

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

2、簡單工廠模式的優(yōu)點:

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

3、工廠模式的缺點:

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

4、簡單工廠的缺點:

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

三、?????抽象工廠模式:

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

??UML結構圖:?


工廠模式和抽象工廠的區(qū)別:

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

??抽象工廠模式的優(yōu)點:

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

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

??抽象模式的缺點:

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

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

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

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

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


來自http://lvxingzhelimin.blog.163.com/blog/static/170716550201110852956542/

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 設計模式匯總 一、基礎知識 1. 設計模式概述 定義:設計模式(Design Pattern)是一套被反復使用、多...
    MinoyJet閱讀 4,081評論 1 15
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 136,534評論 19 139
  • 參考資料:菜鳥教程之設計模式 設計模式概述 設計模式(Design pattern)代表了最佳的實踐,通常被有經驗...
    Steven1997閱讀 1,267評論 1 12
  • 來,快殺了我吧,胖得我都想死了~
    雜談五味閱讀 11,438評論 0 12
  • 晚霞羞紅了臉 醉人的天色 追趕著太陽 消失在浮云里 你踏馬歸來 明澈含水的雙眸 緩緩住進我心間 致我曾經喜歡的姑娘...
    sakuratears閱讀 349評論 6 8

友情鏈接更多精彩內容