• 面向对象为什么要多用对象模式而少用继承模式?


    进来学习java的时候遇到了一些经验说多用对象模式,少用继承模式。如今写一点感想。

    面向对象的对象之间的哦和方式有继承,实现。关联,依赖,聚合和组合。当中的继承和实现是继承这类模式。

    说道的一个原因就是代码污染。

    比如一个父类很复杂。而一个继承了这个类的子类可能重写了一部分的方法。可是继承了所有的方法。用户在使用继承的子类的时候可能会调用没有重写的父类的方法而且假设这样的方法是在子类的设计者的意图之外的操作。那么子类在继承父类的时候,能够觉得不光是继承到了实用的功能。还继承到了垃圾功能。父类的代码污染到了子类的代码。

    假设採用组合的方法。子类不再继承父类。而採用关联或者聚合的方式进行耦合。这样会产生什么样的情况呢?我们首先假设原来的父类的设计是完好合理的。用户不管怎么訪问父类,其结果都在父类的设计者的意料之内。如今,子类通过随意的方式使用父类的功能去完毕一个新的功能。仅仅要保证子类设计的合理,那么不会额外的须要子类的设计者去关心用户訪问子类对象的父类的非重写的方法而产生意外。

    总结一下,就是继承这样的方式的耦合额外的引入了不须要的功能。因此,添加了子类设计者的关注点和风险。

    使用关联的方式实现耦合,仅仅要保证父类设计合理。子类设计合理,就不会对子类的设计者提出额外的须要。


    本文參考:

    http://blog.csdn.net/hivon/article/details/583558


  • 相关阅读:
    Classification and Representation(分类与表示)
    静态链表
    拓扑序列
    二分图问题
    大数据概述
    QT出现应用程序无法正常启动0xc000007b的错误
    简易有穷自动机实验
    一个简易的C语言文法
    词法分析器实验报告
    浅谈词法分析器
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10557275.html
  • Copyright © 2020-2023  润新知