如果你只会Java,那任何事看起来都是类 - Go语言中文社区

如果你只会Java,那任何事看起来都是类


在软件开发领域,有一句话经常被拿来用:

如果你手头只有锤子,那所有东西看起来都像钉子

这句话有各种各样的类似的说法,但最初的来源是工具定律,也叫做马斯洛的锤子

我是今天在阅《Head First 设计模式》这本时想到这个故事的。(一本奇书,不确定我是否该推荐你们读这本书。)

让我印象深刻的东西是,对于任何设计上的问题,Java里给出的解决方法都是创建一个新类。我很吃惊,这种语言里基本上没有第二种用于抽象代码的方法。我已经用惯了带有lambdas语法的语言,所以,举个例子,为了封装一个“开灯”的动作,你需要创建一个LightOnCommand类来实现Command接口,这种做法感觉就是浪费脑力、字符,精神。我讨厌这严重受限的代码表达能力。

马斯洛的锤子

马斯洛的各种言论中,有一个关于锤子的比喻,是在提醒主观与客观的相互作用,被他多次重复,十分重要。

下面就是马斯洛的锤子语录:

  • "When the only tool you have is a hammer, every problem begins to resemble a nail."
  • 当你手里***的工具是锤子时,所有的问题看起来就像是钉子。
  • "He that is good with a hammer tends to think everything is a nail."
  • 善用锤子的人倾向于把所有的事都看成钉子。
  • "If the only tool you have is a hammer, you tend to see every problem as a nail."
  • 假如你手里***的工具是锤子,你容易把所有的问题都看成钉子。
  • "If you only have a hammer, you tend to see every problem as a nail."
  • 假如你仅有锤子,你就倾向于把所有问题看成钉子。
  • "To the man who only has a hammer in the toolkit, every problem looks like a nail."
  • 即如一个人的工具箱内只有锤子,所有的问题就看起来像钉子。
  • "When all you own is a hammer, every problem starts looking like a nail."
  • 当你所有的拥有仅仅是锤子,所有的问题就开始看起来像钉子。

版权声明:本文来源51CTO,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:http://developer.51cto.com/art/201109/294692.htm
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-16 11:29:43
  • 阅读 ( 842 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢