Python之設計模式 13 動態更新

2021-09-27 02:15:13 字數 2110 閱讀 2702

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

# 設計模式——工廠模式

# 實現了建立者和呼叫者的分離,使用專門的工廠類將選擇實現類和建立物件進行統一的管理和控制

# 測試工廠模式 gof(group of four)23

class ca***ctory:

def creat_car(self, brand):

if brand == "賓士":

return benz()

elif brand == "寶馬":

return bmw()

elif brand == "比亞迪":

return byd()

else:

return "error"

class benz:

pass

class bmw:

pass

class byd:

pass

factory = ca***ctory()

c1 = factory.creat_car("賓士")

c2 = factory.creat_car("寶馬")

print(c1, c2)

# 設計模式——單例設計

# 確保乙個類只有乙個例項物件,並且提供訪問該類的全域性訪問點

class mysingleton:

__obj = none

__init__flag = true

def __new__(cls, *args, **kwargs):

if cls.__obj == none:

cls.__obj = object.__new__(cls)

return cls.__obj

def __init__(self, name):

if mysingleton.__init__flag:

print('init……')

self.name = name

mysingleton.__init__flag = false

a = mysingleton('aa')

b = mysingleton('bb')

c = mysingleton('cc')

print(a)

print(b)

print(c)

class ca***ctory:

__obj = none

__init__flag = true

def creat_car(self, brand):

if brand == "賓士":

return benz()

elif brand == "寶馬":

return bmw()

elif brand == "比亞迪":

return byd()

else:

return "error"

def __new__(cls, *args, **kwargs):

if cls.__obj == none:

cls.__obj = object.__new__(cls)

return cls.__obj

def __init__(self):

if ca***ctory.__init__flag:

print("init ca***ctory……")

ca***ctory.__init__flag = false

class benz:

pass

class bmw:

pass

class byd:

pass

factory = ca***ctory()

c1 = factory.creat_car("賓士")

c2 = factory.creat_car("寶馬")

python設計模式之工廠模式 day13下午

設計模式 工廠模式 class bmw def init self,name self.name name class benz def init self,name self.name name class ca ctory staticmethod 定義靜態方法 def makecar name...

設計模式 13)狀態模式

abstract class state class forenoonstate state 點,working w.hour else class noonstate state 點,sleep w.hour else class afternoonstate state 點,working w....

13 常見設計模式

建立型模式 5 工廠方法 抽象工廠 單例 原型建造者 結構型模式 7 介面卡 裝飾器 外觀 橋接 組合 享元 行為型模式 11 策略 模擬方法 觀察者 迭代子 責任鏈 命令 備忘錄 狀態 訪問者 中介者 直譯器 所謂單例設計模式 就是採取一定的方法保證在整個的軟體系統中,對某個類只能存在乙個物件例項...