软件设计模式从何而来?——“抄袭来的” 设计模式

“请问你开发中使用过设计模式吗/p>

“能说一下工厂模式如何实现吗/p>

“请问Spring 使用了哪几种设计模式/p>

上面这些问题是不是很熟悉大家面试都被问过。还记得我第一次被问到时的一脸懵逼。随后立刻被对面投来的鄙夷眼神一万点暴击。

现在想想真的是 too young! too simple!

从生搬硬套到灵活运用,我体验过设计模式的甜,也尝过过度设计的苦。但是不可否认,设计模式一定是一把利刃。虽然使用不当也会砍伤自己。

在某个撸完码的清晨,品了一口保温杯中的枸杞,看着窗外凌晨四点的帝都,脑海里忽然闪现一个拷问灵魂的问题:设计模式从哪里来r>

设计模式是用来解决问题的。没有问题乱用什么设计模式赤果果的炫技!

所有的模式都是用于解决某种共性问题,所以先有问题才会有模式。问题描述了设计模式所能解决的问题。问题可能是不灵活的设计方式,也可能是难以实现的功能。

解决方案:

解决方案描述设计的组成部分。各个对象或者组件间的关系和职责。解决方案是灵活的,并且通用于一类问题。当遇到类似问题时,都可以采用此种解决方案。

效果:

有句话叫“不看广告,看疗效”。设计模式也得对症下药,治标治本。

效果描述了采用此种设计模式可以为你带来的收益。某几种设计模式都可以为你解决同一个问题,但你需要权衡不同设计模式的效果,做到有的放矢。最终达到最好的灵活性、扩充性和可移植性。

名称:

每个设计模式都需要有一个简短的名称。有一个好记的名字,在需要的时候才能被想起来。通过名称也可以很快映射出此种设计模式的其他要素。

其实模式四要素和看病吃药是一回事。得了某种病是问题。解决方案是吃哪几种药,剂量是多少。效果当然就是药的疗效。最后要起个好名字。是 “对乙酰氨基酚” 好记,还是 “感康” 好记,这不言而喻。

来模拟现实世界吧

软件领域中遇到的问题,在人类文明几千年的发展过程中早就遇到过。并且也有相应的模式来解决。
软件设计模式基本上都是参照现实世界中已有的模式实现。

想一想,早上穿着“工厂”生产的衣服“装饰”一下自己。到公司取出电脑,插上“适配器”(电源),再接上鼠标、键盘、显示器 “组合” 成工作站。中午叫个美团 “代理” 购买午餐。下午困了,想睡一会,告诉同事如果经理来了,赶紧“通知”我。下午用公司 “模版” 完成汇 PPT。结束自己 “thread” 一天的工作,晚上美美的进入 “sleep”。但是,第二天早上……

模式是通用的,善用现实世界的模式解决软件问题,是优秀软件设计者必备技能。
后面系列文章,我会通过现实世界映射来分析软件中的优秀设计。归根溯源,一起看看这些优秀的软件设计从何而来!

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93915 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月25日
下一篇 2022年8月25日

相关推荐