如果你只会Java,那任何事看起来都是类
在软件开发领域,有一句话经常被拿来用:
如果你手头只有锤子,那所有东西看起来都像钉子
这句话有各种各样的类似的说法,但最初的来源是工具定律,也叫做马斯洛的锤子。
我是今天在阅《Head First 设计模式》这本时想到这个故事的。(一本奇书,不确定我是否该推荐你们读这本书。)
让我印象深刻的东西是,对于任何设计上的问题,Java里给出的解决方法都是创建一个新类。我很吃惊,这种语言里基本上没有第二种用于抽象代码的方法。我已经用惯了带有lambdas语法的语言,所以,举个例子,为了封装一个“开灯”的动作,你需要创建一个LightOnCommand类来实现Command接口,这种做法感觉就是浪费脑力、字符,精神。我讨厌这严重受限的代码表达能力。