设计模式的本质

本文探讨了对象生命周期中的变化,包括对象结构、规格和行为的变化,并以UML的角度分析了线性、树型和图型关系。面对对象关系变化,提出了通过适配、代理、注册机制和抽象层等方法进行封装。强调在开发业务需求时,应先识别变化,避免面向过程思维,注重灵活性和可扩展性。
摘要由CSDN通过智能技术生成

找到变化,封装变化

两个问题:什么在变化,如何封装变化

以对象生命周期的视角去看待对象的变化,对象是由创建而产生,然后被使用,最后是消亡。
对象有三个不同维度的变化:对象结构的变化对象规格的变化对象行为的变化。

从UML看,对象之间的关系有依赖、泛化、组合、聚合,但就结构关系上看只有两种,线性关系和非线性关系。线性关系比较简单,就是一对一的关联关系,非线性关系分成两种:树型关系和图型关系。

对象结构变化为例,对象的关系划分成两类:线性关系和非线性关系(树和图),在线性关系中,如何解决一个对象的变化不会影响到关联的对象?在树型结构中,如何解决不断新增加对象的问题?在图型结构中,如何解决用户方便使用复杂系统的问题?
对象规格的变化,有数量的变化、类型的变化、外观的变化,在实际编码的过程中就要有这种思考,比如创建一个对象,再深入思想下,有没有其它类型的对象?数量有没有变化

应对线性变化:通过增加适配来解决,另一种是通过代理来解决
应对非线性变化:一种是通过注册机制,另一种通过抽象层屏蔽复杂性。当一个对象包含多个对象时,如果直接去管理,需要承担的职责太多,通过注册机制就比较好解决,增加一个对象,是通过注册机制主动告知对象。另外一种方法就是通过抽象层屏蔽复杂性,比如门面模式,在门面内把所有的复杂度都规避,对外提供简洁的接口。

业务变化之道:平时我们在做业务需求开发时,要有这种识别变化的意识,先不要陷入面向过程的思维中,不要一上来就考虑如何去实现,而是思考它是什么,会有哪些变化,比如对象的数量、对象的外观、对象的种类……

https://mp.weixin.qq.com/s/qRjn_4xZdmuUPQFoWMBQ4Q

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值