作者的意思是:
“面向对象语言的问题在于他们已经拥有了这一切 他们携带的隐含环境。你想要一个 香蕉,但你得到的是一个拿着香蕉和香蕉的大猩猩 整个丛林。“
这听起来像是对OOP的相当苛刻的批评,但为什么呢?
答案 0 :(得分:1)
在OOP中,制作任何依赖于所有内容的东西都很容易和诱人:
class Banana {
Gorilla WhoHoldsYou() { return gorilla; }
Gorilla gorilla;
}
class Gorilla {
Jungle WhereDoYouLive { return jungle; }
Jungle jungle;
}
这对于代码重用来说并不是很好,因为您还需要Gorilla
和Jungle
类来使用Banana
。
更好的方法(从代码重用的角度来看)本来就是要有一个单独的Banana地图 - >大猩猩和大猩猩 - > Jungle,Banana
类不需要知道Gorilla
类。