我的<<Head First 设计模式>>读后感整理

写的很简单,不过都是读完书后自己的一些感受和认识.恐怕现在的认识还不到位.但记下来,慢慢完善.

说真的,我觉得<<head First>>这本书真的不错,我喜欢看这种书,它带给我的不仅仅是知识,还有读书的乐趣,通俗易懂的语言,图文并貌排版.....等等都让我觉得不错.

以下是我对这些设计模式的一些认识:

 

1.策略模式.除继承之外的一种弹性替代方案.
 把变化的东西与不变化的东西进行分离,把变化的部分封装起来.
 针对接口编程,尽量的使用超类型,而不要使用具体类.
 把变化的不好控制的行为,委托给别人来处理.

2.观察者模式,让观察者知悉被观察者的现状(气象站,气象站将更新后的数据,发送给各个观察者,包括温度计,湿度计,气压计等等).而其中又有一种方式,就是温度计和湿度计等观察者主动去"拉"数据.而前者则被称之为"推"数据.
 可观察者与观察者都继承了各自的接口,又各自做了引用.以可观察者的继续者中对观察者的遍历,来通知并调用观察者相应的方法.

3.装饰对象,通过继承,给新的对象赋予新的职责(星巴兹咖啡,咖啡有各种不同的种类,而且也可以附加很多调料,最后计算价钱.可以将咖啡声明为父类,而各种类型的咖啡继承,并且各个调料也继承自该父类,并给父类对象以新的价格.关键点是装饰者与被装饰者要有相同的类型,可以通过继承同一"接口"来实现).
 被装饰的组件均继承自相同的接口,而装饰者却是继承自实现了那一接口的接口.以此来保证包装对象一类型一致.
 面向接口编程,不面向具体类,也是应用的基础条件.

4.工厂模式,简单工厂,工厂方法,抽象工厂,
 简单工厂只是一种编程方法,把判断生成实例的代码封装到工厂方法内,工厂方法返回所需的类型实例.
 而工厂方法是定义一个创建对象的接口,但由子类来决定实例化的类是哪一个,工厂方法让类把实例化推迟到子类.
 依懒倒置原则,高层和低层都依懒抽象.
 抽象工厂提供一个接口,用于创建相关或依懒对象的家族,而不需要明确指定具体类.
5.单件模式,用来创建独一无二的,只有一个实例的对象.
6.封装模式,通过封装将运算块包装起来,调用此运算的模块不必知道运算模块的结构,只要知道如何使用其包装后的方法就可以了.对方法进行包装.遥控器的操作.
7.适配器模式,继承目标对象的接口,并通过调用被适配者,实现目标对象的方法.
8.模板模式,在一个方法中定义算法的骨架,而将一些详细的步骤延迟到子类中,模板方法使得子类可以在不改变算法骨架的情况下,重新定义算法中的某些步骤.
9.迭代器与组合模式,迭代器提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示.组合模式允许你将对象组合成树形结构来表现"整体/部分"层次结构,组合能让客户以一致的方式处理个别对象以及对象组合.
设计原则:一个类,应该只有一个引起变化的原因.
10,状态模式,将状态封装成独立的类,并将动作委托到代表当前状态的对象,其行为会随着内部状态而改变.在不同的状态下执行同一个行为,会得到不同的效果.是不用放置多条判断的替代方案.(在做费用系统的审核流程时,我应该使用这种模式)
对修改关闭,对扩展开放原则:1)可以在不修改原来编码的基础上,新增编码实现功能;2)可以在不修改原有对象的基础上,直接新增对象来扩展.
状态模式与策略模式的不同之处在于:改变行为这件事,建立在状态改变的方案中;而策略模式则是通过组合和委托来使对象拥有不同的行为和算法.
11.代理模式,调用的方法会远程执行,不过要记住处理远程异常.为一个对象提供一个替身或占位符,以控制对这个对象的访问.

 

如果您有更深的见解,请务必空出抽支烟的时间来,留言指点.
只有这样,我才会有更大的进步.我们共同学习的目标才能得以实现.

posted on 2009-07-10 08:46  aosme  阅读(448)  评论(0编辑  收藏  举报

导航