PHP学院的中学生 2021-06-29 10:54:22 1179次浏览 0条回复 0 0 0

当对象间存在一对多关系时,可以使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,会自动通知它的依赖对象。观察者模式属于行为型模式。观察者模式为你提供了避免组件之间紧密耦合的另一种方法。一个对象通过添加一个方法(该方法允许另一个对象(观察者)注册自己)使本身变得可观察。当可观察的对象更改时,它会将消息发送到已注册的观察者,这些观察者使用该信息执行的操作与可观察的对象无关,结果是对象可以相互对话,而不必了解原因。我们通常在主体中定义一个数组,用于存储观察者对象。

在一个抽象模型中,一个对象需要通知其他对象又不能假定其他对象是谁时,经常使用观察者模式。比如要实现用户注册后发送邮件通知管理员和用户自己填写的邮箱的功能,我们可以将发送邮件给管理员和用户自己都写在这个实现用户注册的类里,但是为了实现松散耦合,我们可以将这个发送邮件的功能单独拿出来写到另外一个类中(使用观察者实现),这样即使在以后更改了用户注册逻辑也不会影响到发送邮件的功能实现。再比如当用户下单购买一件商品时,需要将购买记录写入文本日志、数据库日志,还要发送短信、送抵兑换券积分等,我们可以在主体类中实现下单购买的流程并定义一个观察者接口,当用户下单后通知各个观察者对象执行自己的业务逻辑。

    没有找到数据。
您需要登录后才可以回复。登录 | 立即注册