理解OOP的不足

时间:2016-09-19 10:55:06

标签: oop

作者的意思是:

  

“面向对象语言的问题在于他们已经拥有了这一切   他们携带的隐含环境。你想要一个   香蕉,但你得到的是一个拿着香蕉和香蕉的大猩猩   整个丛林。“

这听起来像是对OOP的相当苛刻的批评,但为什么呢?

1 个答案:

答案 0 :(得分:1)

在OOP中,制作任何依赖于所有内容的东西都很容易和诱人:

class Banana {
   Gorilla WhoHoldsYou() { return gorilla; }
   Gorilla gorilla;
}

class Gorilla {
   Jungle WhereDoYouLive { return jungle; }
   Jungle jungle;
}

这对于代码重用来说并不是很好,因为您还需要GorillaJungle类来使用Banana

更好的方法(从代码重用的角度来看)本来就是要有一个单独的Banana地图 - >大猩猩和大猩猩 - > Jungle,Banana类不需要知道Gorilla类。