设计模式学习技巧笔记

转载请注明出处:http://tedyin.github.io/2016/03/27/design-pattern-skills/

设计模式是什么

设计模式是对特定问题经过无数次的经验总结之后,提出的能够解决它的优雅的方案。

重构是什么

重构就是在不改变软件系统外部行为的前提下,改善它的内部结构。

什么是结构化方法

结构化的方法是以具体的功能为核心来组织程序的结构,它的封装度仅为1级(仅仅封装了完成职责的方法),即仅有对于特定的功能的封装(函数),扩展性很差,很难适应需求的变化。面向对象的方法正是在这一点上优于结构化的方法。在面向对象领域,是以对象来组成程序结构的,一个对象有自己的职责,通过对象间的交互来完成系统的功能,这使得它的封装度至少为2级(封装了方法+数据),即封装了为完成自己职责的方法和数据。另外面向对象的方法还支持更高层次的封装,比如:通过对不同的具体对象的共同的概念行为进行总结概括,我们可以达到3级的封装度 - 抽象的类(在Java中就是接口)。封装的层次越高,抽象的层次就越高,使得设计、代码有越高的弹性,越容易适应变化。

通过对不同的具体对象的共性进行总结概括,我们可以达到3级的封装度 - 抽象的类。

封装的层次越高,抽象的层次就越高,设计和代码的弹性就越高,就越容易适应需求的变化。

基础知识

  1. 面向对象范式
  2. 面向对象原则(SOLID)
  3. 重新认识面向对象,了解这种思想

应用

  • 面向对象的特点:封装,继承,多态。在写类时必须遵守这三点,如何去评价一个类的好坏,就从这三点出发,在写类之前就用这三点过一遍,保证这三点都背遵守。
  • 封装:一切不需要被外界知道的东西,都要封装在内部。

  • 继承:

  1. 切记设计模式不只是一种方法和技术,更是一种思想和方法论。他是一种思想!!
  2. 学习设计模式最主要的目的就是要建立面向对象的思想,尽可能的面向接口编程,低耦合、高内聚,使你设计的程序尽可能的复用。
  3. 在学习设计模式的过程中,应该更加注意设计模式背后的东西,即具体设计模式所共有的的一些优秀的指导原则:
    a. 发现变化,封装变化。
    b. 优先使用组合,而不是继承。
  4. 设计模式并不仅仅是一个有关特定问题的解决方案这个结果,它的意图以及它的动机往往更重要,因为一旦我们理解了一个设计模式的意图、动机,那么在设计过程中,就很容易的发现适用于我们自己的设计模式,从而大大简化设计工作,并且可以得到一个比较理想的设计方案。