zoukankan      html  css  js  c++  java
  • 继承和动态规划的危险

    1.面向对象的编程中,我们希望尽可能减少类之间的依赖行。这样能让类更加强健,更加容易维护。

    但继承却与次背道而驰。

    每个派生类十分依赖它的基类(或多个类),如果基类的接口发生改动,所以派生类都不得不为了适应基类的接口而改动。

    (这是我们为什么总力争设计出几乎无需修改的基类)

    2.动态绑定的开销。非虚方法在编译时绑定(即在编译时便已知被调用的函数),因此不存在运行时函数调用的相关开销;

    C++中动态绑定的方法存在一项固定开销---通常是4-5条汇编语言指令。

    包含虚函数声明的每个类对象都存在相关的大小开销。这项开销通常来源于一个额外的指针(C++中的vptr,本章稍后讨论)。

    根据实现(和处理器),指针在32位机器上通常需要4个字节。因此,对象的大小以4字节递增。这种递增看起来无关紧要,

    但它确实存在。这项开销在使用大量(成千上万)对象时便显而易见,这可能导致虚拟内存分页,从而影响了程序的性能;

    对于大型项目而言,额外指针的开销几乎可以忽略不计。

    3.软件的复杂性:

    使用类层次和框架显然会增加系统的复杂程度。必须要充分理解,才能正确地使用它们。也就是说,使用它们增加了初学者的学习难度。

    而且要设计这些层次也绝非易事。

    但继承确实由很多好处,充分利用利完全大于弊

  • 相关阅读:
    软件架构设计箴言理解
    解决vs2010没有NET Framework 2.0和3.5
    .NET连接数据库实例
    CSS选择器大全
    SilverLight全屏代码
    SilverLight数字时钟 > 我的博客有SilverLight了
    comboBox设置为只读(只选)
    WinForm 单例模式实例
    标识种子和标识增量
    jQuery固定DIV实现“返回顶部”
  • 原文地址:https://www.cnblogs.com/zhengzhe/p/6604163.html
Copyright © 2011-2022 走看看