如果单纯的看书,其实很容易陷入到各种概念中去,最终导致似乎懂了,但实际开始使用的时候又有各种问题。这个版本的设计模式只从实用来入手,就是在各种情况下,根据联想快速的代入这个模式,能够迅速用起来,转化为代码。所以这个版本的设计模式都以现实中的例子自己联想。
假设我以去电影院看电影为例,因为观察者嘛,就是看东西,所以这里以看电影为例。
这就是观察者的模式了。
这里我们有目标:电影毒液。有观察者:观影者N个。
这就完了吗?该怎么转化为代码呢?
那么我再仔细想想,目标也就是电影毒液。
它是什么?该怎么转化为代码?
假使我现在还不知该转化为代码,我不管那么多我先建立一个类,后续怎么联系起来,后续再看。
于是我先创建一个MovieVeno类。
现在有了Movie类,该怎么和观影者联系起来呢?
假使现在还没有思路,我不管那么多,先建立一个类再说,反正不管是谁都是一个对象嘛!如果建立错了,我可以删掉啊。
如此,便建立起了两个类。
然后呢?这两个类如何建立关联呢?其实在代码里,我们知道,说两个类有关联,就是能互相访问到对方,无论是通过消息传递,或者彼此有对方的引用。
既然如此,我们知道电影院一般都是一个电影多个人看,我们可以给每个人都持有这个电影的引用,也可以给这个电影持有每个人的引用。
这里呢,我