Head-First策略模式--学习笔记

180 阅读1分钟

为什么要学习设计模式?

  • 模式可以让我们建造出具有良好OO设计质量的系统。
  • 模式被认为是历经验证的OO设计经验。
  • 模式不是代码,而是针对设计问题的通用解决方案。可以将其应用到特定的应用中去。
  • 模式不是被发明而是被发现。
  • 大多数的模式和原则,都着眼于软件变化这一主题
  • 大多数的模式头允许系统局部改变独立于其他部分。
  • 我们常把系统中会变化的部分抽出来封装
  • 模式让设计人员之间有共享的语言,能够最大化沟通的价值。
  • 在以后的源码学习中,有助于理解

定义: 定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法独立于使用算法的的客户。

知识点:

  • 良好的OO设计必须具备可复用性、可扩充、可维护三个特性
  • 多用组合,少用继承
    “有一个” 可能比 “是一个”更好。
    例如:鸭子有一种行为,“呱呱叫”,鸭子有一种行为,“游泳”;有一种“呱呱叫”的动物叫鸭子,有一种“游泳”的动物叫鸭子。
    使用组合建立系统具有很大的弹性,不仅可将算法族封装成类, 更可以在“运行时动态的改变行为”,只要组合的行为对象符合正确的接口标准即可。

OO原则

  • 封装变化
  • 多用组合,少用继承
  • 针对接口编程,不针对实现编程