工廠模式(Factory Pattern)是一種創建型設計模式,它提供了一種將對象的創建與使用分離的方式,使代碼更加靈活、可擴展和可維護。
工廠模式通過定義一個工廠類來創建對象,而不是直接在代碼中使用new關鍵字創建對象。工廠類可以根據需要創建不同的對象,也可以對對象進行初始化、配置和組裝。使用工廠模式可以隱藏對象的創建細節,使客戶端代碼更加簡潔和可讀。
在Python中,可以使用函數或類來實現工廠模式。下面是一個使用函數實現工廠模式的例子,用于創建不同類型的圖形對象:
class Rectangle:
def draw(self):
print('Drawing a rectangle')
class Circle:
def draw(self):
print('Drawing a circle')
def shape_factory(shape_type):
if shape_type == 'rectangle':
return Rectangle()
elif shape_type == 'circle':
return Circle()
else:
raise ValueError('Invalid shape type')
# usage
rectangle = shape_factory('rectangle')
circle = shape_factory('circle')
rectangle.draw() # output: Drawing a rectangle
circle.draw() # output: Drawing a circle
在這個例子中,我們定義了兩個圖形類Rectangle和Circle,然后定義了一個shape_factory函數,用于根據傳入的參數創建不同類型的圖形對象。當需要創建一個新的圖形對象時,只需要調用shape_factory函數,并傳入正確的參數即可。通過這種方式,我們可以在不修改客戶端代碼的情況下增加新的圖形類型,從而使代碼更加靈活和可擴展。
注意,在實現工廠模式時,需要根據具體的業務需求和設計需求選擇適當的實現方式,并且需要注意對象的創建和管理,避免資源泄漏和錯誤發生。