类的质量

作者: 吳志伟 | 来源:发表于2016-11-17 09:52 被阅读34次

CHECKLIST:Class Quality(核对表:类的质量)

抽象数据类型

  • 你是否把程序中的类都看做是抽象数据类型了?是否从从这个角度评估它们的接口了?

抽象

  • 类是否有一个中心目的?
  • 类的命名是否恰当?其名字是否表达了其中心目的?
  • 类的接口是否展现了一致的抽象?
  • 类的接口是否能让大家清楚明白地知道该如何使用它?
  • 类的接口是否足够抽象,使你能不必顾虑它是如何实现其服务的?你能把类看做黑盒子么?
  • 类提供的服务是否足够完整,能让其他类无须动用其内部数据?
  • 是否已从类中去除无关信息?
  • 是否考虑过把类进一步分解为组件类?是否以尽可能将其分解?
  • 在修改类时,是否维持了其接口的完整性?

封装

  • 是否把类的成员的可访问性降到最小?
  • 是否避免暴露类中的数据成员?
  • 在编程语言所许可的范围内,类是否已尽可能地对其他的类隐藏了自己的实现细节?
  • 类是否避免对其他使用者,包括其派生类会如何使用它做了假设?
  • 类是否不依赖于其他类?它是松散耦合的吗?

继承

  • 继承是否只用来建立”是一个/is a"的关系?也就是说,派生类是否遵循了LSP(Liskov替换原则?)
  • 类的文档中是否记述了其继承策略?
  • 派生类是否避免了“覆盖”不可覆盖的方法?
  • 是否把公用的接口,数据和行为都放到尽可能搞的继承层次中了?继承层次是否很浅?
  • 基类中所有的数据成员是否都被定义为private而非protected的了?

跟实现相关的其他问题

  • 类中是否只有大约7个或更少的数据成员?
  • 是否把类直接或间接调用其他类的子程序的数量减到最少了?
  • 类是否只在绝对必要时才与其他的类相互协作?
  • 是否在构造函数中初始化了所有的数据成员?
  • 除非拥有经过测量的、创建浅层复本的理由,类是否都被设计为当做深层复本使用?

语言相关的问题

  • 你是否研究过所用变成语言里和类相关的各种特有问题?

--- 《代码大全》

相关文章

  • 类的质量

    CHECKLIST:Class Quality(核对表:类的质量) 抽象数据类型 你是否把程序中的类都看做是抽象数...

  • 实体世界与虚拟世界

    费米子:实体,有质量,有能量 玻色子:消息,无质量,有能量 质量和能量相互转换,吸收消息,释放消息 与程序里的类,...

  • 这个315,请关注一下3大房屋建筑质量问题

    人们通常说的房屋存在质量问题,指房屋达不到法定或约定的质量标准,存在质量缺陷。从总体上分,房屋质量问题大致有三类:...

  • 设计网站总结归类

    图片资源类: *照片质量还不错的资源型网站: https://pixabay.com/ *图片质量很不错,而且完全...

  • 10.单细胞 RNA-seq:聚类分析

    学习目标: 评估是否存在聚类过程产生的技术误差 使用 PCA 和 UMAP 图确定聚类质量,并了解何时重新聚类 评...

  • 数据中台 - 数据质量维度

    在做数据中台-数据质量的过程中,通过调研方法论,可以对数据质量技术类校验类型划分6大维度,这些维度如下: 数据质量...

  • 质量管理-sonar

    1、为什么要做质量管理; 2、如何从多个角度来查看代码质量、项目质量; 代码量统计目录结构;类数量方法数量代码数量...

  • 探索高质量亲子关系

    从探索质量和亲子联结的质量的关系这个角度,我们粗粗可以分为以下三类: 1、放松-专注 回想下刚才的例子里,经常得到...

  • 质量的度量——认识物质

    第一阶段:认识物质 教学目标:A类:顺利对物质进行分类。 B类:体会到物质质的不同。 C类:为本单元研究质量概念做...

  • 首饰的质量问题

    质量问题主要包括: 1、纯金、纯银类商品(黄金、白金、银饰) 质量是指商品的含金量、含银量是否达到国家标准 2、珠...

网友评论

    本文标题:类的质量

    本文链接:https://www.haomeiwen.com/subject/zuldpttx.html