Head First Design Pattern 读书笔记(1) Strategy Pattern 策略模式
这几天为了锻炼看英语文档的能力,开着有道硬着头皮看 《Head First Desgin Pattern》的原版书,顺便做下笔记,把里面提到的每个模式通过回忆的方式画出来复习并记下来总结下学习成果=。=
关于设计模式
- 使用设计模式是为了增强程序的复用性,拓展性,易维护性。
- 设计模式会增加程序代码的复杂度,并不是所有情况都必须使用设计模式,需要根据需求以及经验评估使用场景。
- 学习并掌握设计模式后不会大幅提高编程水平(笑),但是平常写代码时应该多用面向对象思维考虑一下。
- 设计模式可以让程序员之间沟通更简洁准确。(比如说,码农a:“这两个类是一对多的关系,这种调用关系应该用观察者模式”。码农b:“ok,我知道怎么搞了” 而不是balabala一大堆代码怎么写)
Strategy Pattern 类图
定义
策略模式:通过接口定义一类抽象的算法(这里的算法可以认为是某类操作或方法)集合,让这个集合下的每种算法都是独立可变化,互不影响的。策略模式使调用方可以灵活的使用某类算法集合下的各种算法。
几个OO的原测
- 封装变化的部分。–>总结变化与不变的地方,将变化的部分通过抽象封装出来。
- 尽量使用组合(has a)而不是继承(is a)。–>组合比继承更加“松耦合”,而且某些语言(如java)只能单一继承,过度使用继承,将导致程序不容易扩展,修改子类功能会动到父类等情况。
- 针对接口编程,而不是针对实现编程。–>接口相对于具体的某个类更加抽象,针对接口编程,可以使用多态(polymorphism)的方式让程序更加灵活,比如通过依赖注入的方式在运行时更改对象内的变量。(Spring IOC就是这么干的)
时间: 2024-10-06 01:40:15