转载请注明出处:http://tedyin.github.io/2016/03/27/design-pattern-skills/
设计模式是什么
设计模式是对特定问题经过无数次的经验总结之后,提出的能够解决它的优雅的方案。
重构是什么
重构就是在不改变软件系统外部行为的前提下,改善它的内部结构。
什么是结构化方法
结构化的方法是以具体的功能为核心来组织程序的结构,它的封装度仅为1级(仅仅封装了完成职责的方法),即仅有对于特定的功能的封装(函数),扩展性很差,很难适应需求的变化。面向对象的方法正是在这一点上优于结构化的方法。在面向对象领域,是以对象来组成程序结构的,一个对象有自己的职责,通过对象间的交互来完成系统的功能,这使得它的封装度至少为2级(封装了方法+数据),即封装了为完成自己职责的方法和数据。另外面向对象的方法还支持更高层次的封装,比如:通过对不同的具体对象的共同的概念行为进行总结概括,我们可以达到3级的封装度 - 抽象的类(在Java中就是接口)。封装的层次越高,抽象的层次就越高,使得设计、代码有越高的弹性,越容易适应变化。
通过对不同的具体对象的共性进行总结概括,我们可以达到3级的封装度 - 抽象的类。
封装的层次越高,抽象的层次就越高,设计和代码的弹性就越高,就越容易适应需求的变化。
基础知识
- 面向对象范式
- 面向对象原则(SOLID)
- 重新认识面向对象,了解这种思想
应用
- 面向对象的特点:封装,继承,多态。在写类时必须遵守这三点,如何去评价一个类的好坏,就从这三点出发,在写类之前就用这三点过一遍,保证这三点都背遵守。
封装:一切不需要被外界知道的东西,都要封装在内部。
继承:
- 切记设计模式不只是一种方法和技术,更是一种思想和方法论。他是一种思想!!
- 学习设计模式最主要的目的就是要建立面向对象的思想,尽可能的面向接口编程,低耦合、高内聚,使你设计的程序尽可能的复用。
- 在学习设计模式的过程中,应该更加注意设计模式背后的东西,即具体设计模式所共有的的一些优秀的指导原则:
a. 发现变化,封装变化。
b. 优先使用组合,而不是继承。 - 设计模式并不仅仅是一个有关特定问题的解决方案这个结果,它的意图以及它的动机往往更重要,因为一旦我们理解了一个设计模式的意图、动机,那么在设计过程中,就很容易的发现适用于我们自己的设计模式,从而大大简化设计工作,并且可以得到一个比较理想的设计方案。