• 类继承和对象组合(摘录设计模式)


    类继承和对象组合是OOB中最常用的两种 技术。
    1. 类继承
    又被称为白箱复用,white box reuse。
    优点:
    类继承可以方便的改变复用的实现,当一个子类重定义了一些而不是全部操作时,它也 能影响它所继承的操作。
    缺点:
    在编译时刻就定义了,无法在运行时刻改变从父类继承的实现。
    子类实现与父类紧密地依赖,父类实现的任何变化将影响子类。这种依赖限制了灵活性和复用性。
    一个解决方法就是只继承抽象基类,抽象类一般提供较少的实现。
    2. 对象组合(object composition)
    又被称为黑箱复用,black box reuse.
    对象组合通过获得对其他对象的引用而在运行时刻动态定义。
    优点:因对象是只能通过接口访问,所以并不破坏封装性。只要类型一致,运行时刻可以用一个对象替代另一个对象。
    因为对象的实现是基于接口写的,所以实现存在较少的依赖关系。
    另外,优先使用组合有助于保持类的封装,集中在单个任务上。这样类和类继承层次保持较小规模,不会增长为不可控制的庞然大物。
    还有,基于对象组合的设计会有更多的对象而不是较少的类,且系统的行为将依赖于对象间的关系而不是被定义在某个类中。
    所以,
    “优先使用对象组合,而不是类继承”

  • 相关阅读:
    文档撰写思路与排版(hadoop)
    ULUA的简洁用法(二)
    开源cocos2d-x编辑器 qco-editor
    u3d tolua + ZeroBraneStudio远程调试
    ULUA的简洁用法
    OpenGL顶点数据传输速度优化
    在do while语句中使用continue的误解
    cocos2d-x 3D shader的纹理坐标是上下颠倒的
    使用ndk-gdb调试android native程序
    OpenSSL中AES加密的用法
  • 原文地址:https://www.cnblogs.com/dqshll/p/1116452.html
Copyright © 2020-2023  润新知