设计模式是软件工程中常用的一套解决问题的模板,它可以帮助开发者解决常见的问题,提高代码的可维护性和可扩展性。以下是一些常见的设计模式示例:

单例模式 (Singleton)

单例模式确保一个类只有一个实例,并提供一个全局访问点。

class Singleton:
    _instance = None

    @staticmethod
    def getInstance():
        if Singleton._instance == None:
            Singleton._instance = Singleton()
        return Singleton._instance

# 使用示例
singleton1 = Singleton.getInstance()
singleton2 = Singleton.getInstance()
print(singleton1 == singleton2)  # 输出 True

观察者模式 (Observer)

观察者模式定义了对象之间的一对多依赖关系,当一个对象改变状态时,所有依赖于它的对象都会得到通知并自动更新。

class Subject:
    def __init__(self):
        self._observers = []

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

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

class Observer:
    def update(self):
        pass

# 使用示例
subject = Subject()
observer1 = Observer()
observer2 = Observer()

subject.register(observer1)
subject.register(observer2)

subject.notify()  # 观察者1和观察者2都会被通知

装饰者模式 (Decorator)

装饰者模式动态地给一个对象添加一些额外的职责,而不改变其接口。

class Component:
    def operation(self):
        pass

class Decorator(Component):
    def __init__(self, component):
        self._component = component

    def operation(self):
        return self._component.operation()

# 使用示例
component = Component()
decorator = Decorator(component)

print(component.operation())  # 输出 Component 的 operation 方法
print(decorator.operation())  # 输出 Component 的 operation 方法

更多设计模式示例,请访问设计模式教程

设计模式