在軟件開發(fā)中,對象的創(chuàng)建是一個基礎(chǔ)且頻繁的操作。隨著項目規(guī)模的增長,直接使用 new 關(guān)鍵字實(shí)例化對象的方式可能導(dǎo)致代碼耦合度高、難以維護(hù)和擴(kuò)展。為了解決這一問題,設(shè)計模式應(yīng)運(yùn)而生,而簡單工廠模式(Simple Factory Pattern)作為創(chuàng)建型模式的入門基石,以其簡潔直觀的特性,在眾多場景中發(fā)揮著重要作用。
簡單工廠模式,又稱靜態(tài)工廠方法模式,它提供一個專門的類(通常稱為工廠類)來負(fù)責(zé)創(chuàng)建其他類的實(shí)例。客戶端不直接調(diào)用具體類的構(gòu)造函數(shù),而是通過向工廠類傳遞參數(shù),由工廠類根據(jù)參數(shù)決定創(chuàng)建并返回哪一種產(chǎn)品類的對象。其核心在于將對象的創(chuàng)建邏輯封裝起來,使客戶端代碼與具體產(chǎn)品類解耦。
簡單工廠模式通常包含以下三個角色:
createProduct),根據(jù)傳入的參數(shù)或條件返回不同的產(chǎn)品對象。假設(shè)我們正在開發(fā)一個圖形繪制程序,需要創(chuàng)建不同的形狀(如圓形、矩形、三角形)。不使用模式時,客戶端代碼需要明確知道每個具體形狀類的存在。而使用簡單工廠模式后:
Shape 接口,包含 draw() 方法。Circle、Rectangle 類,實(shí)現(xiàn) Shape 接口。ShapeFactory,提供一個靜態(tài)方法 getShape(String type)。當(dāng)傳入?yún)?shù)為 “CIRCLE” 時,返回 Circle 對象;為 “RECTANGLE” 時,返回 Rectangle 對象。這樣,客戶端代碼只需調(diào)用 ShapeFactory.getShape("CIRCLE").draw() 即可,無需關(guān)心 Circle 是如何被實(shí)例化的。當(dāng)需要新增三角形時,只需添加新的具體產(chǎn)品類并在工廠方法中增加一個判斷分支,客戶端代碼基本無需改動。
簡單工廠模式適用于以下情況:
簡單工廠模式是一種非常實(shí)用且易于理解的設(shè)計模式。它通過封裝對象的創(chuàng)建過程,有效降低了模塊間的耦合度,使代碼結(jié)構(gòu)更加清晰。其違背開閉原則的缺陷也決定了它更適合于產(chǎn)品類型穩(wěn)定、變化不頻繁的場景。在軟件開發(fā)中,準(zhǔn)確識別場景需求,合理運(yùn)用簡單工廠模式,可以顯著提升代碼的初始質(zhì)量,并為后續(xù)的架構(gòu)演進(jìn)鋪平道路。當(dāng)系統(tǒng)復(fù)雜度增加時,應(yīng)及時考慮升級到工廠方法模式或抽象工廠模式,以獲得更好的擴(kuò)展性。
如若轉(zhuǎn)載,請注明出處:http://www.gedeci.cn/product/67.html
更新時間:2026-08-22 22:24:08
PRODUCT