设计模式的概念
模式:不断重复发生的问题及其解决方案
软件设计的目的:高效的解决问题,代码结构清晰,功能灵活多变
设计模式:对开发过程中常见的问题给出的高效的解决方案
抽象: 忽略非本质的细节,对对象的一种泛化与理想化的处理
深入理解面向对象
面向对象向下(三大机制)
- 封装,隐藏内部实现
- 继承,复用现有代码
- 多态,改写对象行为
面向对象向上(抽象思维)
- 对象怎么设计—-对内
- 对象怎么封装—-对外
- 整体的组织结构—-彼此之间
早绑定与晚绑定
- 早绑定:子模块先存在,再有架构。程序调库。
- 晚绑定:先有框架,再实现子模块。各种插件。
- 早绑定与晚绑定的对比,代码修改时,早绑定,子模块的修改,将导致整个程序无法使用,晚绑定则不会
重构
重构获得模式
不要过度使用设计模式,除非能准确预判到结构的变化,不然可以等变化发生时,重构代码时使用设计模式,否则只是浪费时间,写出一堆自我满足感觉良好,而无实际作用的代码
重构关键技术
继承 -> 组合(解耦),紧耦合 -> 松耦合,其他都是讲早晚绑定问题
- 静态 -> 动态
- 早绑定 -> 晚绑定
- 继承 -> 组合
- 编译时依赖 -> 运行时依赖
- 紧耦合 -> 松耦合