Python 是一种广泛应用于 Web 开发、数据分析、人工智能等多个领域的编程语言。设计模式是解决常见问题的通用解决方案,它们可以帮助开发者写出更加高效、可维护的代码。
以下是一些在 Python 中常用的设计模式:
单例模式 (Singleton)
单例模式确保一个类只有一个实例,并提供一个全局访问点。在 Python 中,可以通过以下方式实现单例模式:
class Singleton:
_instance = None
@staticmethod
def getInstance():
if Singleton._instance == None:
Singleton._instance = Singleton()
return Singleton._instance
# 使用单例
singleton1 = Singleton.getInstance()
singleton2 = Singleton.getInstance()
assert singleton1 is singleton2
装饰器模式 (Decorator)
装饰器模式允许你动态地向对象添加额外的职责,而不改变其接口。在 Python 中,装饰器通常用于日志记录、权限验证等。
def decorator(func):
def wrapper(*args, **kwargs):
print("Before function execution")
result = func(*args, **kwargs)
print("After function execution")
return result
return wrapper
@decorator
def say_hello(name):
print(f"Hello, {name}")
# 使用装饰器
say_hello("Alice")
观察者模式 (Observer)
观察者模式允许对象在状态变化时通知其他对象。在 Python 中,可以使用标准库中的 observer
模块实现。
from observer import subject, observer
class MySubject(subject.Subject):
def __init__(self):
self._observers = []
def register(self, observer):
self._observers.append(observer)
def unregister(self, observer):
self._observers.remove(observer)
def notify(self):
for observer in self._observers:
observer.update(self)
class MyObserver(observer.Observer):
def update(self, subject):
print(f"Observer received update from {subject.__class__.__name__}")
# 使用观察者
subject = MySubject()
observer = MyObserver()
subject.register(observer)
subject.notify()
更多关于 Python 设计模式的内容,您可以访问 Python 设计模式教程。
图片示例
这里插入一张 Python 设计模式的图片:
希望这些信息能帮助您更好地理解 Python 设计模式。