以下是一个简单的Python订阅者模式示例:
class Publisher:
def __init__(self):
self.subscribers = []
def add_subscriber(self, subscriber):
self.subscribers.append(subscriber)
def remove_subscriber(self, subscriber):
self.subscribers.remove(subscriber)
def notify_subscribers(self, message):
for subscriber in self.subscribers:
subscriber.update(message)
class Subscriber:
def __init__(self, name):
self.name = name
def update(self, message):
print(f"{self.name} 收到消息: {message}")
if __name__ == '__main__':
publisher = Publisher()
subscriber1 = Subscriber("订阅者1")
subscriber2 = Subscriber("订阅者2")
publisher.add_subscriber(subscriber1)
publisher.add_subscriber(subscriber2)
publisher.notify_subscribers("新消息1")
publisher.remove_subscriber(subscriber1)
publisher.notify_subscribers("新消息2")
在上面的示例中,Publisher
是发布者类,Subscriber
是订阅者类。Publisher
类具有添加订阅者、移除订阅者和通知订阅者的功能。Subscriber
类具有更新方法,当收到消息时会打印出来。
在示例中,首先创建一个 Publisher
对象,并创建两个 Subscriber
对象。然后将这两个订阅者添加到发布者的订阅者列表中。接下来,调用 notify_subscribers
方法,发送新消息给所有订阅者。最后,移除一个订阅者,并再次发送一条新消息给剩下的订阅者。
当运行上面的代码时,输出结果应该为:
订阅者1 收到消息: 新消息1
订阅者2 收到消息: 新消息1
订阅者2 收到消息: 新消息2
这个简单的示例展示了订阅者模式的基本原理,发布者将消息发送给所有订阅者,订阅者通过更新方法接收消息并做出相应的处理。