我是靠谱客的博主 雪白山水,最近开发中收集的这篇文章主要介绍设计模式的本质,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

找到变化,封装变化

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

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

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

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

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

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

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

最后

以上就是雪白山水为你收集整理的设计模式的本质的全部内容,希望文章能够帮你解决设计模式的本质所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部