python 设计模式(六) 观察者模式(Observer pattern)

本文介绍了Python中的观察者模式,该模式在关注点如网站、店铺更新时起到关键作用。通过E_commerce基类实现观察者注册、注销和通知功能,A_shop子类代表店铺并触发通知,Observer抽象类定义了更新方法,A_customer和B_customer作为具体观察者,当店铺有新的促销活动时,会接收到相应通知。通过示例展示了如何注销观察者,以避免后续活动的通知。
摘要由CSDN通过智能技术生成

观察者模式即当被观察对象发生变化时,能及时通知观察者,这种需求主要用在网站或者店铺的关注上,比如你关注了某个微信公众号,或者淘宝上的商家,当公众号有更新或者店家新到商品或者商品促销时,可以及时通知你。

代码实现了E_commerce被观察对象基类。主要实现了属性_observers和方法add_observer(注册观察者),delete_observer(注销观察者), notify_all_observers(通知所有观察者)。实现了A_shop类,继承自E_commerce。A_shop包含promotion(促销活动列表)。当进行促销时,会把消息发送给所有关注这家店铺的消费者。实现了Observer抽象类,其有必须实现的方法update。实现了A_customer, B_customer两个继承自Observer抽象类的观察者类。当店铺做新的促销活动时,会把self和促销活动传递给观察者的update方法。update方法具体如下:

import abc


class E_commerce(object):
    """
    电商基类,实现了注册,注销观察者,通知所有观察者方法
    """
    def __init__(self):
        self._observers = []

    def add_observer(self, observer):
        if observer not in self._observers:
            self._observers.append(observer)

    def delete_observer(self, observer):
        if observer in self._observers:
            self._o
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值