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

开发 后端
本文是从 If the only tool you have is Java, everything looks like a class 这篇文章翻译而来。

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

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

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

我是今天在阅《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."
  • 当你所有的拥有仅仅是锤子,所有的问题就开始看起来像钉子。

【编辑推荐】

  1. 关于OpenJDK作为Linux平台默认Java的解答
  2. Java Web框架Play Framework 2.0预览版发布
  3. Java 8决定采用跟C#一样的Lambda句法
  4. 深入Java,初探JVM
  5. Java中的IO整理完整版
责任编辑:艾婧 来源: 外刊IT评论
相关推荐

2016-08-01 11:33:40

云迁移云安全合规性

2013-12-30 10:06:51

智能硬件3D打印互联网化

2021-12-19 22:48:53

JavaScript开发代码

2023-07-11 15:43:16

JavaScript技巧

2022-02-28 12:57:09

GNOMEPlasma桌面

2022-02-21 12:05:49

LibreOffiLinux工具栏

2022-03-30 14:23:48

LibreOfficOffice开源

2021-02-02 13:23:47

Python语言线程

2020-02-26 21:57:09

Lambdajava8方法引用

2014-11-07 10:26:05

2012-04-11 09:44:42

谷歌Chrome OS

2023-08-29 08:01:39

2020-06-29 15:00:31

UbuntumacOSLinux

2011-08-31 10:00:22

2021-08-27 07:47:06

gecode

2023-06-27 23:57:06

JavaScrip技能

2022-11-09 15:36:11

Javascript技巧代码

2023-08-01 14:36:00

JavaScript开发

2022-09-26 12:53:54

JavaScrip单行代码

2021-10-02 10:36:00

YAML编程语言软件开发
点赞
收藏

51CTO技术栈公众号