本文是针对《Head First 设计模式》的阅读笔记。
OO基础
- 封装
- 继承
- 多态
- 抽象
OO原则
- 封装变化
- 多用组合,少用继承
- 针对接口编程,而不是针对具体实现
OO模式
策略模式--定义算法组,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户
第一章讲了什么?
这一章让我们初识设计模式。实例的主体是鸭子,不同的鸭子有不同的外观和飞行和鸣叫等行为。
设计1 :鸭子们有共同的抽象父类,在父类中定义鸭子共有的行为和抽象方法,在鸭子子类中实现各自的外观、飞行和鸣叫等方法。
缺点1: 在父类需要新增一个方法时会作用到所有的子类,对应的所有子类都需要做检查是否需要重写这个方法。
缺点2:子类在重写父类的方法时有大量的冗余代码,具有相同叫声(呱呱叫)的鸭子需要分别重写父类的方法,当呱呱叫需要做修改的时候需要修改所有具有呱呱叫行为的鸭子的类。
设计2:针对接口编程,将鸭子的属性和行为分开,将行为通过组合的方式传给鸭子。
鸭子的飞行和鸣叫等行为通过接口的形式在抽象类中定义,子类中用具体的飞行和鸣叫类给接口赋值。
子类的飞行和鸣叫行为可以看成两个算法组。用户通过与算法组的交互得到一个具体的飞行或鸣叫行为。
网友评论