洞察设计模式的底层逻辑
Posted 帷幄庸者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洞察设计模式的底层逻辑相关的知识,希望对你有一定的参考价值。
原文链接:https://mp.weixin.qq.com/s/qRjn_4xZdmuUPQFoWMBQ4Q
读后总结
文章通过“底层逻辑”思想引入在设计模式的底层逻辑就是“找到变化,封装变化”。文章进一步引出“什么在变化,变化了什么”。文章并没有过多讨论设计模式,而是引出了一种基于业务场景,思考变化,归纳变化,并进一步灵活应用前人的设计经验,设计总结的原则,应对变化。其实设计模式就是经典场景的总结,但是不是唯一,要勤加总结,还可以有更多原则。注意避免潜意识的为了技术而技术,技术一定是应对特殊业务服务,尤其核心所解决的问题。基于本文的结构,后续可以总结每一种设计模式,所应对的价值意义,所能应对什么变化,应对范式是什么,可以进一步加深思考。回到架构本身,架构就是在应对需求变化下的结构设计,良好而简单的结构远剩余无休止的盲目劳动。
文章主旨:找到变化,封装变化
文章通过“底层逻辑”思想引入在设计模式的底层逻辑就是“找到变化,封装变化”。
文章进一步引出“什么在变化,变化了什么”。
什么在变化
对象有三个不同维度的变化:对象结构的变化、对象规格的变化、对象行为的变化
对象的关系划分成两类:线性关系和非线性关系(树和图)
不同的业务领域,变化多种多样,需要行业的积累。
对象结构的变化
- 线性结构:如何解决一个对象变化不会影响关联的对象?对象内部变化
- 树结构:如何解决不断新增对象的问题?对象增减结构变化
- 图结构:如何解决用户方便使用复杂系统的问题?系统整体结构变化
对象规格的变化:数量、类型、外观
对象行为的变化:要素、操作、流程
如何封装变化
从封装的类型上看,有数据的封装、方法的封装、类型的封装等。
- 数据的封装:对象的属性
- 方法的封装:对象的行为及可能变化的行为
- 类型的封装:不用关心派生类实现
- 其他对象的封装:屏蔽实现细节
从封装层次来看:封装原则、封装模式、封装方法
设计模式、设计原则,实际就是在解决如何封装变化的问题的具体方法,但是很多新人往往在不明白首先明白什么在变化,才有条件去思考如何封装变化。
合适场景利用技术解决问题,不能滥用技术,这是架构师必备素养。
应对变化
- 寻找对象结构的变化
- 应对线性的变化
- 应对非线性的变化
应对业务变化
设计模式还是要应用到实际的业务中才能发挥它的价值, Alan Shalloway 提到一个观点:无法预测哪里有变化,但能知道哪里可能有变化。平时我们在做业务需求开发时,要有这种识别变化的意识,先不要陷入面向过程的思维中,不要一上来就考虑如何去实现,而是思考它是什么,会有哪些变化。
对象设计之道
对象设计有三个问题:有哪些对象?对象之间的关系是怎样的?对象的职责有哪些?
演绎思维:结构–>功能–>行为
归纳思维:行为–>功能–>结构
先归纳有什么,是什么;再用演绎法思考怎么做
对象不只是名词,而是具有职责的东西
以上是关于洞察设计模式的底层逻辑的主要内容,如果未能解决你的问题,请参考以下文章