如果你只会Java,那所有东西看起来都是类
webphp 13年前
<p>本文是从 <a href="/misc/goto?guid=4958191833002353511" target="_blank">If the only tool you have is Java, everything looks like a class</a> 这篇文章翻译而来。</p> <hr /> <p>在软件开发领域,有一句话经常被拿来用:</p> <blockquote> 如果你手头只有锤子,那所有东西看起来都像钉子 </blockquote> <p>这句话有各种各样的类似的说法,但最初的来源是<a href="/misc/goto?guid=4958191833752821782" target="_blank">工具定律,也叫做马斯洛的锤子</a>。</p> <p>我是今天在阅《<a href="/misc/goto?guid=4958191834497011371" target="_blank">Head First 设计模式</a>》这本时想到这个故事的。(一本奇书,不确定我是否该推荐你们读这本书。)</p> <p>让我印象深刻的东西是,对于任何设计上的问题,Java里给出的解决方法都是创建一个新类。我很吃惊,这种语言里基本上<strong>没有第二种用于抽象代码的方法</strong>。我已经用惯了带有lambdas语法的语言,所以,举个例子,为了封装一个“开灯”的动作,你需要创建一个<code>LightOnCommand</code>类来实现<code>Command</code>接口,这种做法感觉就是浪费脑力、字符,精神。我讨厌这严重受限的代码表达能力。<br /> <br /> 本文转载自: 外刊IT评论 <a href="/misc/goto?guid=4958183272158702965" rel="nofollow">http://www.aqee.net/</a> </p>