java吧 关注:1,245,444贴子:12,723,201
  • 1回复贴,共1

面向对象编程的兴衰!!

只看楼主收藏回复

面向对象编程(OOP)并没有消亡。但与过去相比,它确实没有那么普及了。在 90 年代时,有很多面向对象编程相关的教科书和计算机科学课程。它就是“流行趋势”。然而,随着时间的流逝,人们开始意识到,严格的面向对象方法会带来很多问题。这些问题往往会使代码更复杂、更难以理解且更难以测试。
“鸭嘴兽”效应
现实世界并不总是能被整齐地划分成具有明确属性定义的类别。例如,假设我们创建了一个代表动物王国的类层次结构。该类层次结构中既包含爬行动物(冷血、有鳞片、产卵等等),又包含哺乳动物 (恒温、有毛、生育等等),还包含鸟类、两栖动物、无脊椎动物等等。
然而,对于鸭嘴兽,它似乎不属于我们上述定义的任何类别。我们要做什么呢?我们是创建一个全新的类别,还是重新考虑整个分类方案呢?就工作量和程序复杂性而言,这两种方法都会产生显著的成本。
组合优于继承
举例来说,如果一个按钮具有颜色,我们将通过向常规的“按钮”对象中添加一个“颜色”属性或子对象的形式来实现, 而不是再创建一个新的“颜色按钮”类。由于这一强制要求,新工具包的类层次结构相对较浅,如果我没记错的话,只有两三层。而且它更容易理解和使用,也更强大了。


1楼2019-08-06 15:11回复
    在設計模式中,委託優於繼承


    IP属地:浙江来自iPhone客户端2楼2019-08-07 13:03
    回复