• 类质量的核对表


    抽象数据类型:
        1、你是否把程序中的类都看做是抽象数据类型了?是否从这个角度评估它们的接口了?
    抽象
        1、类是否有一个中心目的?
        2、类的命名是否恰当?其名字是否表达了其中心目的?
        3、类的接口是否展现了一致的抽象?
        4、类的接口是否让人清楚明白的知道该如何使用它
        5、类的接口是否足够抽象,使你能不必顾虑它是如何实现其服务的?你能把类看做黑盒子么?
        6、类提供的服务是否足够完整,能让其他类无需动用其内部数据?
        7、是否已从类中除去无关信息?
        8、是否考虑过把类进一步分解为组件类?是否已尽可能将其分解?
        9、在修改类时是否维持了其接口的完整性?
    封装
        1、是否把类的成员的可访问性降到最小?
        2、是否避免暴露类中的数据成员?
        3、在编程语言所许可的范围内,类是否已尽可能地对其他的类隐藏了自己的实现细节
        4、类是否避免对其使用者,包括其派生类会如何使用它做了假设?
        5、类是否不依赖于其他类?它是松耦合的么?
    继承
        1、继承是否只用来建立“是一个/is a”的关系?也就是说,派生类是否遵循了LSP(Liskov替换原则)?
        2、类的文档中是否记述了其继承策略?
        3、派生类是否避免了“覆盖”不可覆盖的方法?
        4、是否把公用的接口、数据和行为都放到尽可能高的继承层次中了?
        5、继承层次是否很浅?
        6、基类中所有的数据成员是否都被定义为private而非protected的了?
    跟实现相关的其他问题
        1、类中是否只有大约七个或更少的数据成员?
        2、是否把类直接或间接调用其他类的子程序的数量减到最少了?
        3、类是否只在绝对必要时才和其他类相互协作
        4、是否在构造函数中初始化了所有的数据成员?
        5、除非拥有经过测量的、创建浅层复本的理由,类是否都被设计为当做深层复本使用?
    与语言相关的问题
        1、你是否研究过所用编程语言里和类相关的各种特有问题?
  • 相关阅读:
    [Effective C++, 学习总结] 01 视C++为一个语言联邦
    【原创】从“心”开始
    [C++, Basic, 02] 控制对象初始化与析构的顺序
    电信PPPoE拨号失败,获取不到IP
    IPV6学习笔记
    win10提示目前无法访问SmartScreen
    IBM服务器进入IMM
    python把文字转成语音
    python爬虫获取贴吧图片
    ibm x3550更换主板后无法加载系统引导
  • 原文地址:https://www.cnblogs.com/dingsblog/p/4519615.html
Copyright © 2020-2023  润新知