设计模式是软件工程中常用的一套解决问题的模板,它可以帮助开发者解决常见的问题,提高代码的可维护性和可扩展性。以下是一些常见的设计模式示例:
单例模式 (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 方法
更多设计模式示例,请访问设计模式教程。
设计模式