设计模式(二)设计模式的本质

简介

设计模式是计算机前辈们,总结项目开发成败经验,得出的一套最佳实践理论。它并不是高高在上、不切实际的理论,而是具体到代码编写层面的指导理论。

从学习编写代码开始,我们就被教导,要写高内聚、低耦合、可复用、可扩展的代码。但是具体要怎么做呢?设计模式给出了答案。所以,我们之所以要学习设计模式,是因为它可以教会我们,如何实现代码的高内聚、低耦合、可复用,从而提高项目的可维护性,降低项目失败风险,提高项目质量。正因如此,设计模式是每个开发人员的必修课。

理解

但是,我们在学习设计模式的时候,常常因为没有抓住设计模式的本质,而迷失于设计模式的丛林中。只有紧紧抓住设计模式的本质,从而更加省时省力地将其掌握,才能更深入理解其内涵,并且知道什么时候该用、什么时候不该用、具体应该用哪个设计模式。如果无法分析如何使用设计模式、使用设计模式会付出哪些成本、带来什么影响,这将会给项目带来更多的风险和麻烦。也就是说,如非必要,不要使用设计模式;如果用,就要用对。

网络上的一些自称通俗易懂讲解设计模式的文章,其实看下来,并没有让我们理解设计模式的本质。

笔者认为,本质这种东西用一两句话就应该可以描述出来,并且能描绘出被研究对象共同的特征。

本质

回归正题,设计模式的本质是什么?用一句话概括,设计模式的本质就是教你怎么封装。

想象一下这样一个过程。你不用设计模式,实现了某个功能,软件正常运行,一切正常。
但是为了提高代码的质量,你准备重构现有的代码。
通过分析发现,某些代码段的使用频率很高,我们可以将其称作“热代码”。对于热代码,我们不想一遍一遍的敲,想要节省时间和精力。实现这个目的的方法就是把热代码封装起来。

只有通过适当的封装,才能实现代码的高内聚、低耦合、可复用、可扩展。所以,设计模式的本质就是教你怎么封装。当然,封装的目的多种多样,可能有时并不只是为了封装热代码,实际工作中,要根据问题的优先级综合考虑。

理性对待

设计模式不是万能的,不要迷信设计模式。需求的变化是常事,所有已有的代码都可能被推翻。巨大的需求变化下,设计模式也无能为力。设计模式只能适应某类需求变化,而不是所有需求的变化。在使用设计模式时,需要开发团队根据经验和理论对需求的进行预测,选择合适的设计模式,提高项目维护性。

设计模式既然是一种好的做法,那么对应的,就有不好的做法。这也从侧面说明了,不学设计模式也一样能够实现想要的功能。功能才是软件的生命,功能才是用户真正关心的东西,设计模式只是开发人员的思维工具。

后面的文章中,笔者将对各种已有的设计模式,从设计模式的本质出发,进行细致分解。

设计模式的参考资料我们采用国内目前比较便于访问的菜鸟教程中的内容。地址:https://www.runoob.com/design-pattern/design-pattern-intro.html


本文原创首发于微信公众号“Qt未来工程师”。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

撬动未来的支点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值