Python設計模式 簡單工廠模式

2021-09-19 15:08:30 字數 1344 閱讀 9988

結語工廠模式是乙個用來建立物件的設計模式

需要動態建立同一基類的不同物件時使用。

實現了物件建立和使用的分離;

客戶端無須知道所建立的具體產品類的類名,只需要知道具體產品類所對應的引數即可。

由於工廠類集中了所有產品的建立邏輯,職責過重,一旦不能正常工作,整個系統都要受到影響;

一旦新增新產品就不得不修改工廠邏輯,違反了開閉原則

有乙個汽車廠商生產兩種車輛,根據使用者需求提供不同的車型。使用者剛好有兩種需求對應這兩種車型:

需求:只買貴的,不買對的

需求:經濟、安全、實用

定義乙個名為car的基類,土豪車cara和普通車carb別繼承自基類car;

工廠類ca***ctory提供乙個名為getcar的方法來返回相應車輛;

使用者通過工廠類得到自己想要的車輛。

為了實現上述需求,**如下:

# -*- coding: utf-8 -*-

class car: # 定義基類

def __init__(self):

self.speed = 0

def run(self):

print('speed: ' + str(self.speed))

class cara(car): # 土豪車

def __init__(self):

self.speed = 200

print('i am rich. i can run faster.')

class carb(car): # 普通車

def __init__(self):

self.speed = 100

print('i am normal. i can run.')

class ca***ctory: # 汽車工廠

# 如果增加了新的車種也必須同時修改該方法,這裡違反了開閉原則

def get_car(self, kind):

if kind == 'expensive': # 貴的則生產 土豪車

return cara()

if kind == 'normal': # 一般的生產 普通車

return carb()

if __name__ == '__main__':

# 業務邏輯中已經不生產具體的車輛了,實現了解耦

factory = ca***ctory()

b = factory.get_car('normal')

b.run()

a = factory.get_car('expensive')

a.run()

設計模式 工廠模式(簡單工廠模式和方法工廠模式)

一 簡單工廠模式 簡單工廠模式概述 又叫靜態工廠方法模式,它定義乙個具體的工廠類負責建立一些類的例項 優點 客戶端不需要在負責物件的建立,從而明確了各個類的職責 缺點 這個靜態工廠類負責所有物件的建立,如果有新的物件增加,或者某些物件的建立方式不同,就需要不斷的修改工廠類,不利於後期的維護 動物類 ...

設計模式之簡單工廠 工廠方法模式 抽象工廠模式

這裡講三種模式放在一起說明,是因為三種模式關聯性很強 抽象工廠模式簡單化以後就是工廠方法模式,工廠方法模式再簡單化就是簡單工廠模式 簡單工廠模式並沒有被列入到gof的設計模式中 public class factory 簡單工廠類,實現建立產品物件 class factory return prod...

Python下的設計模式學習(1) 簡單工廠模式

使用物件導向的思想設計乙個簡單的計算器類 基於物件導向的四個原則即使得 具有可維護,可復用,可擴充套件,靈活性好的特點 我們需要通過封裝,繼承,多型把程式的耦合度降低。將程式的業務邏輯於介面邏輯分開,讓它們之間的耦合度下降,才可以達到容易維護和擴充套件。比如該問題,使用者只需要知道使用特定的符號,以...