[导入]《Head.First设计模式》的学习笔记(1)

书中列举了一些让大脑就范的原则,其实这也是我们在学习中应该遵循的原则。这些原则如下:

1、慢一点,你理解的越多,需要记的就越少。

2、勤做练习,自己记笔记。

3、上床睡觉之前不要再看别的书了,或者至少不再看其他有难度的东西。

4、要喝水,而且要多喝点水。

5、大声说出来。

6、听听你的大脑怎么说。

7、要有点感觉!

8、设计一点东西!

书中列举的设计原则:

1、封装变化。找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起。

2、针对接口编程,而不是针对实现编程。

举例说明:

假设有一个抽象类Animal,有两个具体的实现(Dog与Cat)继承Animal。

image

“针对实现编程”的做法:Dog d = new Dog();d.bark();

“针对接口编程”的做法:Animal animal = new Dog();animal.makeSound();

                                或者:Animal animal = getAnimal();animal.makeSound();

3、多用组合,少用继承。

原因:

       a、继承会使类无限膨大,可能会使类变得臃肿。

       b、子类可能会继承父类中那些无用甚至有害的方法。

       c、组合比继承更灵活,可以实现在执行中动态改变对象的功能。

4、为了交互对象之间的松耦合设计而努力。

5、类应该对修改关闭,对扩展开放。

6、要依赖抽象,不要依赖具体类。
解释:不要让“高层组件”依赖“低层组件”,而且,不管“高层组件”还是“低层组件”,两者都应该依赖于抽象。
避免违反该原则的几个方针:
1)、变量不可以持有具体类的引用。
如果使用new,就会持有具体类的引用,可以使用工厂来避开这种引用。
2)、不要让类派生自具体类。
如果派生自具体类,就会依赖具体类,可以派生自抽象或接口。
3)、不要覆盖基类中已实现的方法。
如果覆盖基类中已实现的方法,那么基类就不是一个真正适合被继承的类。基类中已实现的方法应该被所有子类所共享。
(设计原则未完,待续)。

下一篇记录“策略模式”。

 



长空新雁 2008-03-19 14:38 发表评论

文章来源:http://www.cnblogs.com/wxj1020/archive/2008/03/19/1113185.html

posted on 2008-04-10 17:33  黄昌楠  阅读(169)  评论(0)    收藏  举报

导航