设计模式(一):学习大纲

设计模式(一):学习大纲

该系列文章,是在学习网上课程时的学习总结,可能会有一些瑕疵和错误,看到的可以留言反馈,谢谢~

学习意义

重要性的看法

设计模式老生常谈了,对程序员的后续发展是很重要的,可以有效提升代码的可读性,具体来看,有如下用途:

  • 应对面试,面试里面装高手;
  • 装杯,写出来的代码别人看到了只能说牛皮;
  • 复杂逻辑的结构用设计模式的思想来实现代码,才能实现的好;
  • 源码、框架里面很多设计模式思想,不懂就看不懂了;
  • 一切为了职场未来更好的装杯。

大纲

image.png

面向对象

  • 四大特性:继承、封装、多态、抽象;
  • 面向对象和面向过程的区别和联系;
  • 面向对象的分析、设计、编程;
  • 接口和抽象类的区别和联系;
  • 如何基于接口实现而不是基于实现;
  • 为何要多用组合而不是继承;
  • 面向过程中的贫血模型和面向对象的充血模型;

设计原则

  • SRP 单一职责原则;
  • OCP 开闭原则;
  • LSP 里氏替换原则;
  • ISP 接口隔离原则;
  • DIP 依赖倒置原则;
  • DRY 原则;
  • KISS 原则;
  • YAGNI 原则;
  • LOD 原则

设计模式

设计模式是一系列方法论的抽象模型,大部分是用来解决代码的可拓展性问题,在学习这一块的时候,重点是要知道这些设计模式是用来解决什么问题的,在什么场景下用,并且不过度设计。

  • 创建型
    • 单例模式
    • 工厂模式
    • 建造者模式
    • 原型模式
  • 结构型
    • 代理模式
    • 桥接模式
    • 装饰者模式
    • 适配器模式
    • 门面模式
    • 组合模式
    • 享元模式
  • 行为型
    • 观察者模式
    • 模板模式
    • 策略模式
    • 职责链模式
    • 迭代器模式
    • 状态模式
    • 访问者模式
    • 备忘录模式
    • 命令模式
    • 解释器模式
    • 中介模式

编程规范

目前市面上已经有很多要求规范了,所以这里也都是一些规章要求等,照着规范来就行了。

比如,我们直接用阿里的《代码规范》即可,在 IDEA 里也有其对应的插件实现,尽量遵守即可。

代码重构

代码重构是一个持续迭代的过程,而每次采用的方法就是上面所说的那些:设计思想、设计原则、设计模式、编程规范等。在每次的重构过程中,灵活运用这些方法论,避免过度优化即可。

  • 重构的目的、对象、时机、方法;
  • 保证重构后不引入新的问题:单元测试和集成测试;

之间的联系

  • 面向对象是下面所有方法论的基础,其核心的4大特性,保证方法论的实现;
  • 设计原则是设计模式的指导思想,许多设计模式都是实现了设计原则;
  • 设计模式就是具体的实现,比设计原则更加的具体好懂;
  • 编程规范更加注重代码的细节,更好落地;
  • 编程规范是上面所有的基石,只有保证改完后不出现新的错误才是一次好的更改。

讨论

哪一部分最重要

我认为是设计原则,因为设计模式是对设计原则的更具体实现,规范的话注重的太细节,重构每次采用的也是这些方法,所以还是原则最重要。

设计模式为什么要强调是面向对象的设计方法论

所有的或抽象或具体都是根据面向对象的4大特性来抽象出来的。在面向过程或函数式编程等编程模型中,并不是全部适用。

公众号截图




文章在公众号「iceWang」第一手更新,有兴趣的朋友可以关注公众号,第一时间看到笔者分享的各项知识点,谢谢!笔芯!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章