如果你只會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."
  • 當你所有的擁有僅僅是錘子,所有的問題就開始看起來像釘子。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章