Python设计模式

2023-05-21  本文已影响0人  卡门001

三种模式

创建型模式

单例模式

可以由import来实现

import ... #即为单实例模式,导入多次也被当成一次使用

多实例共享一个属性

利用类属性不会随实例变化而变化,实现多个实例共享(moonstate)一个属性

class MyClass:
    __class_variable = None

    def __init__(self, var):
        self.get_variable = var

    @property
    def get_variable(self):
        return self.__class_variable

    @get_variable.setter
    def get_variable(self, var):
        self.__class__.__class_variable = var

    def display(self):
        return self.get_variable


C1 = MyClass(1)
C2 = MyClass(2)

类属性赋值:
C2 = get_variable = ...

# C1与C2的get_variable 的值永远会相同
print(C1.get_varible)
print(C1.display()) 

结构型模式

最实用的是适配模式,通常用来解决兼容问题

""""
适配模式
"""


class UsbTypeA():
    def getName(self):
        return "TypeC接口"

    def oneFace(self):
        return "双面"


class UsbTypeC():
    def getName(self):
        return "TypeC接口"

    def doubleFace(self):
        return "双面"


class Adapter(UsbTypeC):
    def oneFace(self):
        return self.doubleFace()


iface1 = UsbTypeA()
print(iface1.oneFace())
iface2 = Adapter()
print(iface2.oneFace())

行为模式

责任链模式:实现了发送才与接收者解耦,让多个对象接收发送者请求,并沿着链式结构直接传递,直到有目标对象处理该请求为止

使用方式:

用 try ... exception 语句捕获异常,请求失败从DNS、HTTP、Socket 逐层返回
上一篇 下一篇

猜你喜欢

热点阅读