架构师训练营 - 第 3 周学习总结
设计模式四部分:名称、待解问题、解决方案、利弊
设计模式功能分类:创建型、结构型、 行为性
设计模式方式分类:
类模式:以继承的方式实现,静态的
对象模式:已组合的方式实现,动态的
设计模式:
简单工厂
单例模式
适配器(类适配-继承&对象适配-组合):以统一接口兼容不一致的接口
模板模式:通过继承实现扩展,基类负责算法的轮廓和骨架,子类负责算法集体的实现
策略模式:通过组合实现扩展,可以结合springboot框架实现策略的选择
组合模式:将对象组合成树形结构以表示"部分-整体"的层次结构。使得用户对单个对象和组合对象的使用具有一致性。
装饰器模式:在不改变接口的情况下,扩展现有对象的功能,可以任意组合
问题总结:
为什么OOD和设计模式在实际开发中应用较少?
我们大都是基于开源框架进行的业务功能开发,开源框架已经定义了程序结构,可以发挥的空间较小。开源框架本身包含了大量的OOD和设计模式,学习开源框架也是一个提高设计能力的途径。但框架也有不能完全覆盖的地方,这就是我们应用OOD和设计模式的时候。
如何重构当前系统结构并顺利推行?
如果重构需要大量修改当前业务代码,则推进困难,测试工作也很繁重。我们首先可以基于单一职责原则,把复杂的问题先简单化,难的问题比复杂的问题更好处理。然后利用设计模式屏蔽框架结构的变化,尽量减少重构造成现有业务代码变动,当重构不需要改动现有业务代码时,阻力将不复存在。
如何选择设计模式?
在开发过程中,基于高内聚、低耦合的思想,遵循OOD设计原则,封装变化的部分并提出抽象,并不是以某一种设计模式去套用,而是通过现有的设计模式带给我们一些设计上的灵感。
有些设计模式看起来差不多,为什么叫不同的名字?
设计模式本质上是面向对象多态的应用,所以代码看起来是差不多的,但是针对的场景不同解决的问题也不同。每一种设计模式解决一个问题,使用设计模式不必纠结于代码。
评论