前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式的作用

设计模式的作用

作者头像
Dwyane
发布2018-05-22 17:52:20
7160
发布2018-05-22 17:52:20
举报
文章被收录于专栏:技术总结技术总结

      设计模式描述的是软件设计,因此它是独立于编程语言的,但是最终实现仍然要使用编程语言来表达。设计模式不像算法技巧,可以照搬照用,它是建立在对“面向对象”纯熟、深入理解的基础上的经验性认识,掌握面向对象设计模式的前提是首先掌握“面向对象”!

      有时我们可能会问:模式虽好,但是不会使代码更复杂吗?

    代码复杂与否很多时候是主观的。人们对模式的熟悉程度极大地左右他们如何看待基于模式的重构。当他们不熟悉某个模式时,会认为模式过于复杂,而熟悉了某个模式之后,通常就不会这么认为。

    模式是前人智慧的结晶,重用这种智慧是非常有益的。通常,实现模式有助于去除重复、简化逻辑、澄清意图、提高灵活性。尽量地学习更多的模式,而不要认为模式太复杂而不使用模式。

    但是,有些模式确实使代码更复杂。出现这种情况,就应该返回做进一步的重构(发现问题再处理,而不是凭空担心)。

    应用设计模式的最好方式就是:重构为模式(Refactoring to Patterns)。也就是说,不是不加变通地套用模式,而是通过重构渐进地引入设计模式,这样才可能避免过度设计。重构使我们的注意力集中在去除重复、简化代码、澄清意图,从而使我们更明智地使用模式。

      在哪里应用设计模式的一个重要指标就是:看哪里有变化点。

    设计模式建立在对系统变化点的基础上进行,哪里有变化点,哪里应用设计模式。设计模式应该以演化的方式来获得,系统的变化点往往经过不断演化才能准确定位。

      这个也有一个很有趣的比喻:变化点就像武功中的“破绽”。风清扬传授的“无招胜有招”的独孤九剑要诀,就是寻找对手的“破绽”,只要找到了对手的破绽在哪里,就把剑尖指向哪里,敌人即不战自败。应用设计模式的时候,要先找到哪里会发生(需求的)变化,然后在那里寻找合适的模式并运用。在不会发生任何变化的地方,是不需要使用设计模式的。

      设计模式的危险就是:为了使用模式而使用模式,把任何需求都看作模式的拼凑,一开始就使用模式来设计。正如学习武功而痴迷于招式,同样会走火入魔。模式不是目的,目的是更好地设计。只有明智地使用模式,才能为我们带来模式的乐趣。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.01.22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档