软件设计漫谈之二:设计模式只是一把锤子!

简介:

              设计模式只是一把锤子!

    谈起设计模式,那是几乎无人不知,无人不晓,大名鼎鼎的“GOF”(中文有的翻译为“四人帮”)惊世之作,真是“平生不识GOF,学尽设计也枉然!”

    然而,设计模式真的是软件设计的“瑞士军刀”,切、削、锯、钻样样精通么?

    读过设计模式的朋友估计不少,但真正注意过《设计模式》的副标题的估计很少,而这个副标题却是避免误解设计模式的关键。《设计模式》的副标题是:可复用面向对象软件的基础

    不要小看了这短短的一句话,如果你没有看这句话,或者只是一扫而过并没有仔细体会,那么你很可能就认为设计模式是一把“瑞士军刀”,能够解决所有的设计问题,而实际上“设计模式只是一把锤子”,有个谚语叫做“如果你手里有一把锤子,那么所有的问题都变成了钉子”,如果你拿着设计模式这把锤子倒出去敲,要么东西被敲坏,要么就不起作用。

    为什么说设计模式只是一把锤子呢?我们还是从副标题来看。《设计模式》的副标题揭示了《设计模式》的两个主要约束:

1)设计模式解决的是“可复用”的设计问题;

2)设计模式应用的领域是“面向对象”;

    相信经过我这么一提醒,大家基本上都能够明白了为什么“设计模式只是一把锤子”了:

1)设计模式只能解决“可复用”的设计问题,其它的例如性能设计、可靠性设计、安全性设计、可服务性设计等都不是设计模式能够解决的;

2)设计模式只是在面向对象的语言中应用,如果是非面向对象的语言,就不怎么好用了。当然,你可以在C语言中用上设计模式,但毕竟要折腾不少,用起来也不那么得心用手。

    所以,当你遇到一个问题就想到设计模式的时候,一定要注意“设计模式只是一把锤子”,不要拿着这把锤子到处去敲!

目录
打赏
0
0
0
0
902
分享
相关文章
设计模式觉醒系列(02)这几种设计模式很简单实用 | 相信你肯定见过
本文介绍了设计模式中的模板方法模式、外观模式和单例模式。模板方法模式通过父类定义算法框架,子类实现具体步骤,提高代码复用性和扩展性;外观模式提供高层次接口隐藏子系统复杂性,降低耦合度;单例模式确保一个类只有一个实例,适用于资源开销敏感场景。文中结合实战demo及Tomcat源码应用详细解析了这三种模式的实现与优点,并附带Spring中单例模式的应用示例。
85. 谈谈Java面向对象设计的六大原则,中高级面试常问
85. 谈谈Java面向对象设计的六大原则,中高级面试常问
166 0
把书读薄 | 《设计模式之美》学习导读 & 面向对象(下)
设计模式某些概念比较抽象,认真看完有时似懂非懂,往往没过多久就忘了,在实际设计与编码中,也不知道如何下手,所以需要落地,想办法加深理解,阅读开源项目,应用到项目中等等。 本文是 学习导读(3讲)和面向对象(11讲) 的浓缩总结,二手知识加工难免有所纰漏,感兴趣有时间的可自行查阅原文,谢谢。
113 0
【硬核】23种设计模式娓娓道来,助你优雅的编写出漂亮代码!
大家好,我是小羽。我们平时使用的每一个技术栈的原理或者源码都或多或少与设计模式的理念有关联,也可以这么说,只有更好的掌握了设计模式,我们的代码编写才能更规范、简洁,效率更高。其次,设计模式...
185 0
【硬核】23种设计模式娓娓道来,助你优雅的编写出漂亮代码!
⭐️C#零基础到入门 ⭐️| 编程 设计模式界的”网红”——观察者模式
前言 前边有一篇文章简单介绍了23中设计模式和六大设计原则。原文///C#进阶知识学习 之 ☀️ 带你认识编程中的—23种设计模式 & 六大设计原则 在这里就挑几种常用的设计模式来做一个单独的详情介绍 ,就比如本篇文章的主角——观察者模式
⭐️C#零基础到入门 ⭐️| 编程 设计模式界的”网红”——观察者模式
程序员的修仙之路——设计模式六大基本原则
程序员的修仙之路——设计模式六大基本原则
201 0
把书读薄 | 《设计模式之美》学习导读 & 面向对象(中)
设计模式某些概念比较抽象,认真看完有时似懂非懂,往往没过多久就忘了,在实际设计与编码中,也不知道如何下手,所以需要落地,想办法加深理解,阅读开源项目,应用到项目中等等。 本文是 学习导读(3讲)和面向对象(11讲) 的浓缩总结,二手知识加工难免有所纰漏,感兴趣有时间的可自行查阅原文,谢谢。
175 0

相关实验场景

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等