观察者模式
2021-04-26 16:40:57 43 举报
观察者模式
作者其他创作
大纲/内容
数据库日志观察者ConcreteObserver
+afterByticket():void
<Interface>Observer
+response():void
for(Object obs:obs){ (Observer)obs.response();}
抽象主题Subject
# observer:List<Observer>
+add(Observer observer):void+remove(Observer observer):void+notifyObserver():void
短信平台观察者ConcreteObserver
观察者模式的主要角色:1、抽象主题(Subject)角色:也叫抽象目标类,提供了用于保存观察者对象的聚集类和增加删除观察者对象的方法,以及通知所有观察者的抽象方法。2、具体主题(Concrete Subject)角色:也叫具体目标类,实现抽象目标中的通知方法,当具体主题的内部状态发生改变时,通知所有注册过的观察者对象。3、抽象观察者(Observer)角色:一个抽象类或者接口,包含了一个更新自己的抽象方法,当接到具体主题的更改通知时被调用。4、具体观察者(Concrete Observer)角色:实现抽象观察者中定义的抽象方法,以便在得到目标的更改通知时更新自身的状态。
场景:* 以购票为核心业务,但围绕购票会产生不同的其他逻辑,如: * 1、购票后记录文本日志 * 2、购票后记录数据库日志 * 3、购票后发送短信 * 4、购票送抵扣卷、兑换卷、积分 * 5、其他各类活动等
具体观察者1ConcreteObserver1
该场景实际中更适合用消息队列,kafka等
文本日志观察者ConcreteObserver
购票主题ConcreSubject
+notifyObserver():void
具体主题ConcreteSubject
积分、优惠券平台观察者ConcreteObserver
0 条评论
下一页