设计模式学习笔记(1)-大纲及目的

学习目的

  1. 应付面试
  2. 如果你是一个有追求的程序员(告别烂代码)
  3. 复杂代码的设计和开发能力
  4. 读源码,学框架事半功倍
  5. 职场发展

如何评判代码质量的好坏(常用评价)

  1. 可维护性

    修改bug时候是否会破坏原有设计,是否会引入新的bug

  2. 可读性

    任何傻瓜都会编写计算机能理解的代码,好的程序员能够编写人能够理解的代码 -------Martin Fowler

    评价可读性,代码是否符合编码规范,命名是否达意,注释是否详尽,函数是否长短合适,模块划分是否清晰等等

  3. 可扩展性

    表示代码应对未来需求变化的能力(需求的改变是不变的真理),即代码是否预留功能扩展点

  4. 灵活性

    代码可以应付业务内的大多数场景等

  5. 简洁性

    KISS原则:keep is Simple,Stupid

    尽量保持代码简单,逻辑清晰

  6. 可复用性

    尽量减少重复代码的编写,复用已有的代码,例如通过面向对象的继承,多态的目的之一,重构技巧之解耦,高内聚,模块化,设计原则之单一职责原则等达到最终效果

  7. 可测试性

    容易写单元测试,TDD开发

面向对象、设计原则、设计模式、编程规范、重构之间的关系

  • 面向对象
    • 四大特性:封装、继承、抽象、多态
    • 与面向过程的区别和联系
    • 面向对象分析,面向对象设计,面向对象编程
    • 接口抽象类的区别以及其各自适用场景
    • 基于接口而非实现编程
    • 多用组合少用继承的设计思想
    • 面向过程的贫血模型和面向对象的充血模型
  • 设计原则
    • SOLID原则-SRP 单一职责原则
    • SOLID原则-OCP 开闭原则
    • SOLID原则-LSP 里氏替换原则
    • SOLID原则-ISP 接口隔离原则
    • SOLID原则-DIP 依赖倒置原则
    • DRY原则、KISS原则、YAGNI原则、LOD法则
  • 设计模式
    • 创建型:单利模式、工厂模式(工厂方法和抽象工厂)、建造者模式
    • 结构型:常用(代理模式、桥接模式、装饰者模式、适配器模式),不常用(门面模式,组合模式,享元模式)
    • 行为性:常用(观察者、模板、策略、职责链、迭代器、状态),不常用(访问者、备忘录、命令、解释器、中介)
  • 编程规范
    • 命名注释参数等,主要是解决代码的可读性问题
  • 代码重构
    • 重构的目的、对象、时机、方法
    • 保证重构不出错的技术手段:单元测试和代码的可测试性
    • 两种不同规模的重构:大重构和小重构
  • 联系
    • 面向对象是很多设计原则、设计模式实现的基础
    • 设计原则是指导代码设计的一些经验
    • 设计模式是在代码设计过程中,前人总结出来的解决方案或设计思路,设计原则比设计模式更抽象
    • 编程规范主要解决代码的可读性问题,相对于设计模式更加具体和偏重细节
    • 重构是利用面向对象、设计原则、设计模式、编码规范等理论保持代码质量

附上大牛课程,大家可以直接去大牛那学习

http://gk.link/a/10fWa

你可能感兴趣的:(设计模式学习笔记(1)-大纲及目的)