目录
一、工厂模式(Factory Pattern)
二、单例模式(Singleton Pattern)
三、观察者模式(Observer Pattern)
一、工厂模式(Factory Pattern)
工厂模式(Factory Pattern):工厂模式是一种创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
Python 例子:
class Creator:def factory_method(self):raise NotImplementedError('Subclasses must implement this method!')class ConcreteProductA(Creator):def factory_method(self):return ProductA()class ConcreteProductB(Creator):def factory_method(self):return ProductB()class ProductA:passclass ProductB:passdef client_code(creator):product = creator.factory_method()product.do_something()# 使用
creator_a = ConcreteProductA()
client_code(creator_a)creator_b = ConcreteProductB()
client_code(creator_b)
二、单例模式(Singleton Pattern)
单例模式(Singleton Pattern):单例模式是一种创建型模式,它确保一个类只有一个实例,并提供一个全局访问点。
Python 例子:
class Singleton:_instance = Nonedef __new__(cls):if cls._instance is None:cls._instance = super().__new__(cls)return cls._instancesingleton_instance = Singleton()
another_instance = Singleton()# singleton_instance 和 another_instance 是同一个实例
print(singleton_instance is another_instance) # 输出: True
三、观察者模式(Observer Pattern)
观察者模式(Observer Pattern):观察者模式是一种行为型模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象状态发生改变时,它的所有依赖者(观察者)都会收到通知并自动更新。
Python 例子:
class Subject:def __init__(self):self._observers = []def attach(self, observer):self._observers.append(observer)def notify(self):for observer in self._observers:observer.update()class Observer:def update(self):raise NotImplementedError('Subclasses must implement this method!')class ConcreteObserver(Observer):def update(self):print('Observer received an update!')# 使用
subject = Subject()
observer = ConcreteObserver()
subject.attach(observer)
subject.notify() # 输出: Observer received an update!
代码之美,在于创造无限可能!