设计模式(一):学习大纲
该系列文章,是在学习网上课程时的学习总结,可能会有一些瑕疵和错误,看到的可以留言反馈,谢谢~
学习意义
重要性的看法
设计模式老生常谈了,对程序员的后续发展是很重要的,可以有效提升代码的可读性,具体来看,有如下用途:
- 应对面试,面试里面装高手;
- 装杯,写出来的代码别人看到了只能说牛皮;
- 复杂逻辑的结构用设计模式的思想来实现代码,才能实现的好;
- 源码、框架里面很多设计模式思想,不懂就看不懂了;
- 一切为了职场未来更好的装杯。
大纲
面向对象
- 四大特性:继承、封装、多态、抽象;
- 面向对象和面向过程的区别和联系;
- 面向对象的分析、设计、编程;
- 接口和抽象类的区别和联系;
- 如何基于接口实现而不是基于实现;
- 为何要多用组合而不是继承;
- 面向过程中的贫血模型和面向对象的充血模型;
设计原则
- SRP 单一职责原则;
- OCP 开闭原则;
- LSP 里氏替换原则;
- ISP 接口隔离原则;
- DIP 依赖倒置原则;
- DRY 原则;
- KISS 原则;
- YAGNI 原则;
- LOD 原则
设计模式
设计模式是一系列方法论的抽象模型,大部分是用来解决代码的可拓展性问题,在学习这一块的时候,重点是要知道这些设计模式是用来解决什么问题的,在什么场景下用,并且不过度设计。
- 创建型
- 单例模式
- 工厂模式
- 建造者模式
- 原型模式
- 结构型
- 代理模式
- 桥接模式
- 装饰者模式
- 适配器模式
- 门面模式
- 组合模式
- 享元模式
- 行为型
- 观察者模式
- 模板模式
- 策略模式
- 职责链模式
- 迭代器模式
- 状态模式
- 访问者模式
- 备忘录模式
- 命令模式
- 解释器模式
- 中介模式
编程规范
目前市面上已经有很多要求规范了,所以这里也都是一些规章要求等,照着规范来就行了。
比如,我们直接用阿里的《代码规范》即可,在 IDEA 里也有其对应的插件实现,尽量遵守即可。
代码重构
代码重构是一个持续迭代的过程,而每次采用的方法就是上面所说的那些:设计思想、设计原则、设计模式、编程规范等。在每次的重构过程中,灵活运用这些方法论,避免过度优化即可。
- 重构的目的、对象、时机、方法;
- 保证重构后不引入新的问题:单元测试和集成测试;
之间的联系
- 面向对象是下面所有方法论的基础,其核心的4大特性,保证方法论的实现;
- 设计原则是设计模式的指导思想,许多设计模式都是实现了设计原则;
- 设计模式就是具体的实现,比设计原则更加的具体好懂;
- 编程规范更加注重代码的细节,更好落地;
- 编程规范是上面所有的基石,只有保证改完后不出现新的错误才是一次好的更改。
讨论
哪一部分最重要
我认为是设计原则,因为设计模式是对设计原则的更具体实现,规范的话注重的太细节,重构每次采用的也是这些方法,所以还是原则最重要。
设计模式为什么要强调是面向对象的设计方法论
所有的或抽象或具体都是根据面向对象的4大特性来抽象出来的。在面向过程或函数式编程等编程模型中,并不是全部适用。
公众号截图
文章在公众号「iceWang」第一手更新,有兴趣的朋友可以关注公众号,第一时间看到笔者分享的各项知识点,谢谢!笔芯!