Python中常见的设计模式有:
- 单例模式(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
- 观察者模式(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)
- 装饰器模式(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设计模式广泛应用于实际项目中,掌握常用设计模式能提高代码复用性和可维护性。