设计模式的案例和教程网上和书籍均比比皆是,且都可以是长篇大论。在此,我摘抄的是一句到几句我认为是足以对我能起到启发或概括亦或是点睛作用的句子。“他见”是指别人或书本上的客观看法,而“我解”则是我自己对这些客观看法的观点。
“我解”:通过上面那篇文章,可以看到观察者模式主要组成是四个部分,但从我上面摘抄的句子实则是可以通过其中两个主要部分的关联去推理得出其他两个属于尾端部分的,即:具体主题对象〈--N-- 抽象观察者对象,这就是观察者模式的最终效果:1个具体对象发生变化,从而调用自身的“通知方法(broadCast)”将其本身拥有的抽象观察者对象(一般为集合,list居多,因为删除添加操作为主)成员变量遍历一遍,调用他们自身的“更新方法update”, 这就是效果。当然,他们两个不是独立存在的,所以能推理得出:抽象主题以及具体观察者的存在,他们两个的存在只是为了上面主要效果作铺垫的,即:抽象主题〈---具体主题对象〈---N--- 抽象观察者对象〈---具体观察者对象。
观察者设计模式:从具体主题角色指向抽象观察着角色的合成关系,代表具体主题对象可以有任意多个对抽象观察者对象的引用,之所使用抽象观察者而不是具体观察者,意味着主题对象不需要知道引用了哪些具体观察者类型,而只知道抽象观察者类型。这就叫做“针对抽象编程”。
“我解”:通过上面那篇文章,可以看到观察者模式主要组成是四个部分,但从我上面摘抄的句子实则是可以通过其中两个主要部分的关联去推理得出其他两个属于尾端部分的,即:具体主题对象〈--N-- 抽象观察者对象,这就是观察者模式的最终效果:1个具体对象发生变化,从而调用自身的“通知方法(broadCast)”将其本身拥有的抽象观察者对象(一般为集合,list居多,因为删除添加操作为主)成员变量遍历一遍,调用他们自身的“更新方法update”, 这就是效果。当然,他们两个不是独立存在的,所以能推理得出:抽象主题以及具体观察者的存在,他们两个的存在只是为了上面主要效果作铺垫的,即:抽象主题〈---具体主题对象〈---N--- 抽象观察者对象〈---具体观察者对象。