读《代码大全2》笔记:类的质量
2011-12-08 17:48
337 查看
类的质量核对表:
1.抽象数据类型
1.1 是否把程序中的类都看做时抽象数据类型了?是否从这个交大评估它们的接口?
2.抽象
2.1 类是否有一个中心目的?
2.2 类的命名是否恰当?其名字是否表达了其中心目的?
2.3 类的接口是否展现了一致的抽象?
2.4 类的接口是否能让人清楚明白地知道该如何使用它?
2.5 类的接口是否足够完整,能让其它类无须动用其内部数据?
2.6 是否已从类中除去无关信息?
2.7 是否考虑国把类进一步分解为组件类?是否已尽可能将其分解?
2.8 在修改类时是否维持了其接口的完整性?
3.封装
3.1 是否把类的成员的可访问性降到最小?
3.2 是否避免暴露类中的数据成员?
3.3 在编程语言所许可的范围内,类是否已尽可能地对其它的类隐藏了自己的实现细节?
3.4 类是否避免对其他使用者,包括其它派生类会如何使用它做了假设?
3.5 类是否不依赖于其它类?它是松散耦合的吗?
4.继承
4.1 继承是否用来建立“是一个/is a”的关系?也就是说,派生类是否遵循了LSP(Liskov替换原则)?(LSP:派生类必须能通过基类的接口而被使用,且使用者无须了解两者之间的差异。)
4.2 类的文档中是否记述了其继承策略?
4.3 派生类是否避免了“覆盖”不可覆盖的方法?
4.4 是否把共用的接口、数据和行为都放到尽可能高的继承层次中了?
4.5 继承层次是否很浅?
4.6 基类中所有的数据成员是否都被定义为private而非protected的了?
5.跟实现相关的其它问题
5.1 类中是否只有大约七个或更少的数据成员?
5.2 是否把类直接或间接调用其它类的子程序的数量减到最少了?
5.3 类是否只在绝对必要时才与其它的类相互协作?
5.4 是否在构造函数中初始化了所有的数据成员?
5.5 除非拥有经过测量的、创建浅层复本的理由,类是否都被设计为当作深层复本使用?
6.与语言相关的问题
6.1 是否研究过所有编程语言里和类相关的各种特有问题?
1.抽象数据类型
1.1 是否把程序中的类都看做时抽象数据类型了?是否从这个交大评估它们的接口?
2.抽象
2.1 类是否有一个中心目的?
2.2 类的命名是否恰当?其名字是否表达了其中心目的?
2.3 类的接口是否展现了一致的抽象?
2.4 类的接口是否能让人清楚明白地知道该如何使用它?
2.5 类的接口是否足够完整,能让其它类无须动用其内部数据?
2.6 是否已从类中除去无关信息?
2.7 是否考虑国把类进一步分解为组件类?是否已尽可能将其分解?
2.8 在修改类时是否维持了其接口的完整性?
3.封装
3.1 是否把类的成员的可访问性降到最小?
3.2 是否避免暴露类中的数据成员?
3.3 在编程语言所许可的范围内,类是否已尽可能地对其它的类隐藏了自己的实现细节?
3.4 类是否避免对其他使用者,包括其它派生类会如何使用它做了假设?
3.5 类是否不依赖于其它类?它是松散耦合的吗?
4.继承
4.1 继承是否用来建立“是一个/is a”的关系?也就是说,派生类是否遵循了LSP(Liskov替换原则)?(LSP:派生类必须能通过基类的接口而被使用,且使用者无须了解两者之间的差异。)
4.2 类的文档中是否记述了其继承策略?
4.3 派生类是否避免了“覆盖”不可覆盖的方法?
4.4 是否把共用的接口、数据和行为都放到尽可能高的继承层次中了?
4.5 继承层次是否很浅?
4.6 基类中所有的数据成员是否都被定义为private而非protected的了?
5.跟实现相关的其它问题
5.1 类中是否只有大约七个或更少的数据成员?
5.2 是否把类直接或间接调用其它类的子程序的数量减到最少了?
5.3 类是否只在绝对必要时才与其它的类相互协作?
5.4 是否在构造函数中初始化了所有的数据成员?
5.5 除非拥有经过测量的、创建浅层复本的理由,类是否都被设计为当作深层复本使用?
6.与语言相关的问题
6.1 是否研究过所有编程语言里和类相关的各种特有问题?
相关文章推荐
- sonarQube代码质量管理笔记
- 高质量C/C++编程指南 阅读笔记(五)类的继承与组合
- 系统集成项目管理工程师笔记(10) 项目质量管理
- sonarQube代码质量管理笔记
- 表驱动法----代码大全2,第18章学习笔记
- 项目管理学习笔记之五质量管理过程总结
- 全面质量管理之品管圈运作学习笔记
- 读《代码大全2》之软件质量的普遍原理
- sonarQube代码质量管理笔记
- 第一章--第二节:软件构造的质量目标(软件构造学习笔记)
- java代码质量跟踪分析 sonar 笔记
- 【PMP】Head First PMP 学习笔记 第八章 质量管理
- sonarQube代码质量管理工具环境筹建笔记
- PMBOK(第五版)学习笔记 —— 8 项目质量管理
- sonarQube代码质量管理笔记
- MPEG4 & H.264学习笔记之一 ------ 视频格式与质量
- 笔记︱多种常见聚类模型以及分群质量评估(聚类注意事项、使用技巧)
- PMP学习笔记(九):质量管理
- 《设计前的质量》阅读笔记1
- 笔记:代码质量-第一章-导论