再见了,面向对象编程
原文: https://medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4c0e53#.z48fmajih 这是一篇长文,共有三大块,我先翻译第一块,以后有时间更新后面的 我已经用面向对象编程了好几十年了,从最开始的C++然后到Smalltalk最后到.NET和JAVA。我一直期待能充分利用面向对象编程的三大核心:继承、封装、多态带来的好处。我渴望从代码复用这一效果中能窥探到前辈们的智慧。想象着把真实世界映射成代码里各种类,我简直不能太兴奋,还满怀期待的等着他们像真实世界一样正常运转起来。 这样想就大错特错了。 继承,第一个失败的核心 乍一看,继承显然应该是面向对象编程最大的好处。对于刚刚接触面向对象思想的人来说,这些简洁的层级形状示例看起来非常有道理。 而“代码复用”,多年来都是面向对象思想的代名词。我毫不犹豫的接受了这种思想,并且一头扎进刚刚发现的这片新大陆。 “香蕉猴子雨林” 问题 成为面向对象虔诚信徒的我,带着手头的问题,开始构建类层次并编码。一切都还好。 然而,我永远忘不了当我准备利用继承来使用已有类库的那一天,毕竟说好的复用效果就要出现了。我™为这天可等了不少时候了。 一个新项目交到我的手上,我又想起来在自己上个项目中颇为喜爱的一个类。 没问题,复用拯救世界