设计模式学习之 观察者模式与发布订阅模式

观察者模式

模式类型:行为型模式

应用场景:当一个对象被修改时,则会自动通知依赖他的对象(概念太抽象)。

对象间关系: 观察者(n) - 被观察者(1)

应用实例

在A校有一个学生仪表监控系统,而监控到学生A穿拖鞋上学系统就会报警发出警告

说明

观察者会受被观察对象刺激,然后做出反应。比如说猫与老鼠洞,当猫探查老鼠洞时发现了里面的老鼠时(被老鼠刺激),猫会叫并捉老鼠,当探查老鼠洞无老鼠时,猫也会走开,便无观察者与被观察者。

另外观察者别名为“订阅与发布”,例如,在微博关注了王一博,他发消息后我都能收到。

发布与订阅模式

模式类型:行为型模式

应用场景:首先发布者需要发布话题,发布完成后,话题被订阅订阅者们定义,然后,关于该话题内容的修改会通过消息发给订阅者,无订阅者时,就不会随意发送消息。

对象间关系:发布者 (1) - 话题(n) 话题(1) - 订阅者(0-n)

应用实例

在A论坛上,B同学发布了一个C话题,然后D同学对该话题感兴趣想知道更多,于是点了关注。在后面的日子里,B同学在C话题里面发布了一个问题,而D同学在论坛消息里面收到了C话题通知的消息。

现实简单例子

微信公众号、QQ空间、知乎问答、掘金问答、Segmentfault回答问题的消息等等

说明

没有了话题这个对象,那么就变为了订阅与发布模式,


风研雨墨
396 声望15 粉丝