连载:面向对象葵花宝典:思想、技巧与实践(37) - 设计模式:瑞士军刀 or 锤子?

“设计模式”这个词几乎成为了软件设计的代名词,很多人非常天真的以为掌握了设计模式就掌握了软件设计,但实际上如果只是握了设计模式,软件设计的门都还没摸到!


========================================================


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

 

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

 

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

 

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

 

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

 

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

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

 

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

 

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

 

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

 

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


================================================ 
转载请注明出处:http://blog.csdn.net/yunhua_lee/article/details/38109227
================================================ 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值