我们要分析设计模式而不是学习设计模式一
1、观察者模式
查询搜索一下观察者模式我的第一感觉是完全记不住。好难。那怎么办?
1
其实我们不要用学习的眼光,而用分析的眼光来看问题就不一样了。
什么是观察模式,其实看看他的 例图就可以分析出来了。
那我们自己怎样设计一个观察者模式那? 问题的思考方法可以查看我上一篇文章。
观察者模式: 观察者–被观察者 只有这个两个角色-> 设计原则职责分离。
1、被观察者要持有多个观察者、这个样就要用聚合来进行管理了。
2、观察这个要知道被观察对象发送了什么事情。
我说的上面的两个问题,其实就是 两个角色分开了怎样进行通信的问题。那具体到类上面。我们就要用到上篇文章的分析了,具体要用那种对象关系。下面是在设计的时候要考虑的问题。
1、两个职责是一对一,多对多,一对多,多对一。
2、我们应该是让两个职责的抽象还是实例产生信息通信。
首先 、 肯定是 一个被观察者对应多个观察这个。那么应该是一个聚合的关系类图。这样应该是被观察者持有了观察者。所以可以对观察者进行管理了。但是观察者目前无法知道被观察者的一举一动。只能任其摆布。所以观察者要持有被观察者才能知道被观察者的详细细节。才能进行相应的行为操作。说白了就是要在对象上持有被观察者还是在方法上传递被观察者。
以上考虑完了就是一个观察者模式了。
总结:
我在接触这个模式的时候,脑子是一片浆糊。这个模式再说啥了。其实,后来想想无非是不知道这个模式是干嘛的。他具体的代码是怎样实现的。他的类图是怎么画的。
如果想多模式有深入的理解,请你认知分析和总结我上一篇文章。
我的忠告:
不要“学习”设计模式。要用设计原则和对象间的基本关系来构建这些模式。这个是两种截然不同的方法。一个是由外而内,一个是由内而外。
而经验告诉我们,要击败一个强悍的对手。从内部下手,省时省力,还一击毙命。
---------------------
|
|