洞察设计模式的底层逻辑

原文链接:https://mp.weixin.qq.com/s/qRjn_4xZdmuUPQFoWMBQ4Q

读后总结

文章通过“底层逻辑”思想引入在设计模式的底层逻辑就是“找到变化,封装变化”。文章进一步引出“什么在变化,变化了什么”。文章并没有过多讨论设计模式,而是引出了一种基于业务场景,思考变化,归纳变化,并进一步灵活应用前人的设计经验,设计总结的原则,应对变化。其实设计模式就是经典场景的总结,但是不是唯一,要勤加总结,还可以有更多原则。注意避免潜意识的为了技术而技术,技术一定是应对特殊业务服务,尤其核心所解决的问题。基于本文的结构,后续可以总结每一种设计模式,所应对的价值意义,所能应对什么变化,应对范式是什么,可以进一步加深思考。回到架构本身,架构就是在应对需求变化下的结构设计,良好而简单的结构远剩余无休止的盲目劳动。

文章主旨:找到变化,封装变化

文章通过“底层逻辑”思想引入在设计模式的底层逻辑就是“找到变化,封装变化”。

文章进一步引出“什么在变化,变化了什么”。

什么在变化

对象有三个不同维度的变化:对象结构的变化、对象规格的变化、对象行为的变化

对象的关系划分成两类:线性关系和非线性关系(树和图)

不同的业务领域,变化多种多样,需要行业的积累。

对象结构的变化

  • 线性结构:如何解决一个对象变化不会影响关联的对象?对象内部变化
  • 树结构:如何解决不断新增对象的问题?对象增减结构变化
  • 图结构:如何解决用户方便使用复杂系统的问题?系统整体结构变化

对象规格的变化:数量、类型、外观

对象行为的变化:要素、操作、流程

如何封装变化

从封装的类型上看,有数据的封装、方法的封装、类型的封装等。

  • 数据的封装:对象的属性
  • 方法的封装:对象的行为及可能变化的行为
  • 类型的封装:不用关心派生类实现
  • 其他对象的封装:屏蔽实现细节

从封装层次来看:封装原则、封装模式、封装方法

设计模式、设计原则,实际就是在解决如何封装变化的问题的具体方法,但是很多新人往往在不明白首先明白什么在变化,才有条件去思考如何封装变化。

合适场景利用技术解决问题,不能滥用技术,这是架构师必备素养。

应对变化

  • 寻找对象结构的变化
  • 应对线性的变化
  • 应对非线性的变化

应对业务变化

设计模式还是要应用到实际的业务中才能发挥它的价值, Alan Shalloway 提到一个观点:无法预测哪里有变化,但能知道哪里可能有变化。平时我们在做业务需求开发时,要有这种识别变化的意识,先不要陷入面向过程的思维中,不要一上来就考虑如何去实现,而是思考它是什么,会有哪些变化。

对象设计之道

对象设计有三个问题:有哪些对象?对象之间的关系是怎样的?对象的职责有哪些?

演绎思维:结构–>功能–>行为

归纳思维:行为–>功能–>结构

先归纳有什么,是什么;再用演绎法思考怎么做

对象不只是名词,而是具有职责的东西

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值