这些日子,注意到很多人对设计模式相当热衷。或许一向如此吧,就像.Net和Java比较那种月经贴。不过昨天看到一篇趣文,不是趣在有新意,趣在上来作者发表的模式宣言:

超级扫盲-什么是设计模式?

  设计模式绝对不是纸上谈兵的知识,光看书就以为自己懂了,那只是井底之蛙之见,设计模式绝对是从实践中来到实践中去的!如果编码经验很少,也不太可能能理解好设计模式,但凡软件设计能力强的人编码功底都是相当扎实的。如果没有能深刻理解面向对象,也不太可能理解好设计模式 

  这个引用一下,就不评论了。只说自己,虽然园子里N个设计模式系列了(偶只看过TerryLee和吕震宇的系列)。眼前有景道不得啊!这里只解决现实问题吧。

  很现实-面试。老经典得让狗嘴长得出象牙的问题-你用过哪些设计模式?

  按一般思维,罗列几个名词,可面试官岂是如此容易打发得了的?接着他挑出一两个追根究底一轮轰炸,对于高手们自然不在话下,兵来将挡水来土淹。偶这种书没看,编码经验又少,又没啥设计能力,只会纸上谈兵的心理素质差劲者,稍不留神就会露出马脚。所以,最好是一下子把对方镇住,免得节外生枝。

  于是偶答道:设计模式是面向对象设计思想在应用中总结出的在不同场合下的具体实践方案。一般来讲,编程语言越高级,对面向对象支持越好,运用设计模式就越容易。比如.Net平台本身,就实现了许多设计模式。

  这时要略停顿一下,面试官一定按捺不住,问“那都有哪些模式呢?”就算义务教学吧,偶滔滔不绝起来:比如项目中添加服务引用,会自动生成服务代理类,实现了典型的代理模式;.Net中对WebRequet、Stream等抽象类的继承扩展,运用了装饰模式;Asp.Net运行时初始化HttpApplication,运用了单例模式;.Net可以通过IEnumerable接口,包含了迭代器模式,而该接口的GetEnumerator方法定义,又是抽象工厂模式的应用……

  轮到面试官受不了了,只好打断你的话,三次皆不例外。“好了好了,那咱们再谈谈比尔盖茨吧,他是属牛还是鸡的呢……?”

posted on 2010-03-19 20:48  小城故事  阅读(7850)  评论(33编辑  收藏  举报