zoukankan      html  css  js  c++  java
  • 代码复用

    1、代码复用有两个方式:继承和复合。

    2、继承分为public继承和private继承,public继承是继承接口,也就是父类提供的接口,子类承若仍然提供,内部有可能修改实现,子类与父类是IS-A关系。private继承是继承实现,父类提供的接口,子类不再提供,子类与父类不是IS-A的关系,不满足里氏代换,private表示的意义是,根据某物来实现。

    3、复合可以分为关联,聚合,组合。关联是一对一的关系,聚合和组合都是多对一的关系,但二者的紧密程度不一样。举例来说,大雁聚合成雁群,翅膀和脚组合成大雁。复合表示的意义也是,根据某物来实现。更合理的说法应该是,委托某物去做某件事。

    4、关联与依赖不同,关联是一个对象持有另一个对象的引用,而依赖则是,别人依赖我,我把自己作为实参传递给别人使用。

    5、继承和复合都能实现代码复用,哪一种方式更好?

      优先使用复合,除非出现下面的情况:

      a、确实是IS-A 的关系;

      b、需要访问protected成员;

      c、需要重写某个虚方法。

  • 相关阅读:
    Delphi7 (第一天:类的编写)
    设计模式(二)Abstract Factory
    hdu 3335(最小路径覆盖)
    hdu 2236(最大匹配+枚举上下界)
    hdu 2819(二分匹配)
    hdu 3861(缩点+最小路径覆盖)
    hdu 2831(贪心)
    hdu 4296(贪心)
    hdu 2354(bfs求最短路)
    hdu 4313(类似于kruskal)
  • 原文地址:https://www.cnblogs.com/nzbbody/p/3487972.html
Copyright © 2011-2022 走看看