设计模式(二):自己动手使用“观察者模式”实现通知机制

在之前发布Objective-C系列博客的时候,其中提到过OC的通知机制,请参考《Objective-C中的老板是这样发通知的(Notification)》这篇博客。在之前关于Notification的博客中,只介绍了Foundation框架中的通知的使用方式。正如前面博客中提到的那样,通知是“一对多的关系”,类似于广播。一个人发通知,多个人接收。这也就是设计模式中的“观察者模式”。接收者的一方是Observer(观察者),而发送方是Subject(主题)。一个人要想成为Observer,要在Subject中进行注册,也就是说要给Subject说,我要成为你的观察者,然后Subject就会给Observer推送消息。

我们不仅要知其然,还要知其所以然。今天博客的主题是“观察者模式”(Observe Pattern),所以我们要先通过一个小的Demo来理解一下“观察者模式” ,当然使用的是Swift语言来实现的(语言只是载体呢,主要还是模式不是)。通过一个小Demo对“观察者模式”进行学习后,紧接着会看一下在Swift中是如何使用Foundation框架中的通知的,并给出相应的示例。最后就是我们放大招的时候了,我们会参照着Foundation框架中的通知机制来实现我们自己的“通知中心”,说白了,就是我们不用Foundation的通知机制,我们自己写,但是使用方式与Foundation框架中的通知机制几乎相同。这应该就是Foundation框架中通知机制的实现原理吧。在本博文的开头需要有个干货预警呢。

一、认识“观察者模式”(Observe Pattern)

1.观察者模式的定义

开门见山,先来看一下观察者模式的定义吧:

观察者设计模式定义了对象间的一种一对多的依赖关系,以便一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动刷新。

上面就是观察者模式的定义。也许你看定义有些抽象,其实观察者模式并不难理解。举个栗子

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwsjff.html