【Python】Python常见设计模式有哪些?

Python中常见的设计模式有:

  1. 单例模式(Singleton):确保一个类只有一个实例,并提供全局访问点。如:
## python www.itzhimei.com 代码
class Singleton:
    __instance = None

    @staticmethod 
    def get_instance():
        if Singleton.__instance is None:
            Singleton()
        return Singleton.__instance

    def __init__(self):
        if Singleton.__instance is not None:
            raise Exception("Single instance allowed")
        else:
            Singleton.__instance = self
  1. 观察者模式(Observer):对象之间多对一依赖,一个对象状态改变,依赖它的对象都会收到通知并自动更新。如:
## python www.itzhimei.com 代码
class Publisher:
    def __init__(self):
        self.observers = []

    def register(self, observer):
        self.observers.append(observer)

    def notify(self):
        for observer in self.observers:
            observer.update(self)

class Subscriber:
    def update(self, publisher):
        print(publisher)
  1. 装饰器模式(Decorator):动态给对象添加额外职责,而不影响其它同类对象。如:
## python www.itzhimei.com 代码
from functools import wraps

def makebold(fn):
    @wraps(fn)
    def wrapper(*args, **kwargs):
        return "<b>" + fn(*args, **kwargs) + "</b>"
    return wrapper

@makebold
def hello():
    return "hello world"

Python设计模式广泛应用于实际项目中,掌握常用设计模式能提高代码复用性和可维护性。