1. 程式人生 > >01.簡單工廠模式

01.簡單工廠模式

一、什麼是簡單工廠模式
簡單工廠模式屬於類的建立型模式,又叫做靜態工廠方法模式。通過專門定義一個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。

案例如下:
設計一個採集水果的類
這裡寫圖片描述
我們專門定義了一個fruitFactory來建立其他的例項
這裡寫圖片描述

共同的父類即fruit類

二、模式中包含的角色及其職責
1.工廠(Creator)角色
簡單工廠模式的核心,它負責實現建立所有例項的內部邏輯。工廠類可以被外界直接呼叫,建立所需的產品物件。(獲得例項就是)
這裡寫圖片描述
被外界直接呼叫同個getApple() 建立所需的產品物件
這裡寫圖片描述
2.抽象(Product)角色
簡單工廠模式所建立的所有物件的父類,它負責描述所有例項所共有的公共介面。

所有物件的父類即公共介面,給其他類繼承的,其他類用到的方法在這裡定義並描述如下的採集方法
這裡寫圖片描述
3.具體產品(Concrete Product)角色
簡單工廠模式所建立的具體例項物件
這裡寫圖片描述
這裡寫圖片描述
改進fruitFactory
用getFruit()替代前面兩種方法
自己判斷返回,靈活一點,就是忽略了大小寫問題,而且不存在的類不報錯,缺點就是程式碼多一點。而且新新增一個類需要繼續新增判斷語句,用不程式碼不改動的專案差不多
但是適應性強所以一般使用這種方法
這裡寫圖片描述

這裡寫圖片描述
繼續改進
這裡寫圖片描述
缺點就是隻能傳入類名,不存在類名的就報錯。
優點是新增新的例項類,比如荔枝,就不用再新增新的判斷
總結:擴充套件性強,適應性弱

這裡寫圖片描述
三、簡單工廠模式的優缺點
在這個模式中,工廠類是整個模式的關鍵所在。它包含必要的判斷
邏輯,能夠根據外界給定的資訊(type),決定究竟應該建立哪個具體類的
物件。使用者在使用時可以直接根據工廠類去建立所需的例項(呼叫getFruit()),而無
需瞭解這些物件是如何建立以及如何組織的。有利於整個軟體體系
結構的優化。

不難發現,簡單工廠模式的缺點也正體現在其工廠類上,由於工廠類集中
了所有例項的建立邏輯,所以“高內聚”方面做的並不好。另外,當系統中的
具體產品類不斷增多時,可能會出現要求工廠類也要做相應的修改,擴充套件
性並不很好。

在DAO層用的比較多
資料庫的訪問,連線交給工廠,我們不需要知道怎麼連線的,只需要獲得使用就好
這裡寫圖片描述