工作之余看了大概两个月的HeadFirst设计模式了,目前看到了第十章,书是本好书,但是实在太厚了,加上一章的内容又有很多,一边看一边忘。。。。所以还是总结一下。
第一章:策略模式,关键字:多用组合,少用继承
为什么要少用继承?每次有了新的需求,都会使代码的某一部分发生改变,那么这部分就有可能需要被抽出来,很容易造成新的错误。将两个类组合起来使用,就是组合。鸭子的行为不是通过继承来的,而是通过飞行行为类,或者叫的行为类组合起来的,使用组合可以使系统具有很大的弹性,可以在运行的时候动态改变行为。
策略模式在书中的定义:定义了算法族,分别封装起来,让他们之间可以相互替换。此模式让算法的变化独立于使用算法的客户。
第二章:观察者模式,出版者+订阅者=观察者模式a
书中定义:定义了对象之间的一对多依赖,这样依赖,当一个对象的状态改变的时候,它的所有依赖者都会收到通知并自动更新。
在这一章主要讲的是对气象站的设计,当气象测量更新的时候,通知布告板改变上面的监控数字。天气数据继承主题Subject的接口,布告板去继承观察者Observer和display的接口。布告板首先在构造方法中包含注册主题registerObserver的功能,当天气数据更新的时候,将调用主体中的notify方法去通知观察者,调用观察者的更新update接口,去更新布告板的显示数值。当然了,主题中也会包含移除观察者removeObserver的接口。
java中包含内置的观察者模式java.utile.Observable和java.util.Observer。setChange方法标记状态是