結語工廠模式是乙個用來建立物件的設計模式。
需要動態建立同一基類的不同物件時使用。
實現了物件建立和使用的分離;
客戶端無須知道所建立的具體產品類的類名,只需要知道具體產品類所對應的引數即可。
由於工廠類集中了所有產品的建立邏輯,職責過重,一旦不能正常工作,整個系統都要受到影響;
一旦新增新產品就不得不修改工廠邏輯,違反了開閉原則。
有乙個汽車廠商生產兩種車輛,根據使用者需求提供不同的車型。使用者剛好有兩種需求對應這兩種車型:
需求:只買貴的,不買對的
需求:經濟、安全、實用
定義乙個名為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) 簡單工廠模式
使用物件導向的思想設計乙個簡單的計算器類 基於物件導向的四個原則即使得 具有可維護,可復用,可擴充套件,靈活性好的特點 我們需要通過封裝,繼承,多型把程式的耦合度降低。將程式的業務邏輯於介面邏輯分開,讓它們之間的耦合度下降,才可以達到容易維護和擴充套件。比如該問題,使用者只需要知道使用特定的符號,以...