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

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

    但继承却与次背道而驰。

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

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

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

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

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

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

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

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

    3.软件的复杂性:

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

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

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

  • 相关阅读:
    在网页中实现截屏粘贴的功能
    CSS3 @font-face 做自定义图标
    Visual Studio报错一箩筐(持续更新)
    Axure实现vcg官网首页原型图
    Axure实现bootstrap首页线框图
    Web第一天——准备篇
    vue动态加载组件
    组件封装之将代码放到npm上
    node连接mysql生成接口,vue通过接口实现数据的增删改查(二)
    autoCAD2007 快捷键 标注
  • 原文地址:https://www.cnblogs.com/zhengzhe/p/6604163.html
Copyright © 2011-2022 走看看