开发者社区> 华仔爱技术> 正文

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

简介:
+关注继续查看

              设计模式只是一把锤子!

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

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

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

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

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

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

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

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

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

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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
[软考考点解析]软件设计师--常用媒体文件格式
1. 题目 以下媒体文件格式中,____是视频文件格式。 A WAV B BMP C MP3 D MOV
16 0
[软考考点解析]软件设计师--流水线的操作周期
1. 概念 指令流水线的操作周期大于等于指令中执行时间最长的指令的操作时间。 虽然可以并行执行,但是完成时间至少也是最长指令的操作时间。
15 0
[软考考点解析]软件设计师--常用加密与摘要算法
1. 题目 以下加密算法中,适合对大量的明文消息进行加密传输的是____。 A RSA B SHA-1 C MD5 D RC5
29 0
[软考考点解析]软件设计师--C程序存储空间
1. 题目 C程序中全局变量的存储空间在____分配。 A 代码区 B 静态数据区 C 栈区 D 堆区
40 0
[软考考点解析]软件设计师--内存按字节编址
1. 概念 内存按字节编址的意思,就是每个地址指向的储存单元可以保存1个字节的数据,也就是8bit(8个二进制位)。 此处注意几个常用单位: 1B(Byte 字节)=8bit 1KB (Kilobyte 千字节)=1024B 1MB (Mega byte 兆字节)=1024KB 1GB (Giga byte 吉字节)=1024MB 然后1024的话是2^10。
28 0
[软考考点解析]软件设计师--词法、语法、语义分析
1. 题目 编译过程中进行的语法分析主要是分析____。 A 源程序中的标识符是否合法 B 程序语句的含义是否合法 C 程序语句的结构是否合法 D 表达式的类型是否合法
44 0
软件行为模型中的设计模式
软件行为模型中的设计模式,翻译自ACM杂志,翻译还未结束,原作者持有所有权利
1886 0
+关注
华仔爱技术
热爱技术的10多年IT老兵,既能深入底层写代码,又能高屋建瓴做架构;可以带领团队往前冲,也能侃侃而谈做演讲。著有《面向对象葵花宝典:思想、技巧与实践》。
114
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载