如何评估一个类是否是高质量的?
来源:互联网 发布:窃听噐在淘宝叫什么 编辑:程序博客网 时间:2024/05/16 10:30
核对表:类的质量
抽象数据类型
你是否把程序中的类都看做是抽象数据类型了?是否从这个角度评估了它们的接口了?抽象
类是否有一个中心目的?类的命名是否恰当?其名字是否表达了其中心目的?
类的接口是否展现了一致的抽象?
类的接口是否足够抽象,使你能不必考虑它是如何实现其服务的?你能把类看作是黑盒了吗?
类提供的服务是否完整,能让其他类无须动用其内部数据?
是否已从类中除去无关信息?
是否考虑过把类进一步分解为组件类?是否以尽可能将其分解?
在修改类时是否维持了其接口的完整性?
封装
是否把类的成员的可访问性到最小?是否避免暴露类中的数据成员?
在编程语言所许可的范围内,类是否已尽可能地对其他的类隐藏了自己的实现细节?
类是否避免对其使用者,包括其派生类如何使用它做了假设?
类是否不依赖与其他类?它是松散耦合的吗?
继承
继承是否只用来建立“是一个/is-a”的关系?也就是说,派生类是否遵循了LSP原则?类的文档中是否记述了其继承策略?
派生类是否避免了“覆盖”不可覆盖的方法?
是否把公用的接口,数据和行为都放到尽可能高的继承层次中了?
继承层次是否很浅?
积累中所有的数据成员是否都被定义为private 而非protected的了?
跟实现相关的其他问题
类中是否只有七个或更少的数据成员?
是否把类直接或间接调用其他类 的子程序的数量减少到最少了?
类是否只在绝对必要时才与其他的类相互协作?
是否在构造函数中初始化了所有的数据成员?
除非拥有经过测量的,创建浅层次副本的理由,类是否都被设计为当做深层副本使用?
与语言相关的问题
你是否研究过所用编程语言里和类相关的各种特有问题?
0 0
- 如何评估一个类是否是高质量的?
- 如何写一个高质量的函数
- 如何建一个高质量的网站
- 高质量c++(指针参数是如何传递内存的?)
- 高质量c++(指针参数是如何传递内存的?)
- [译]Quora是如何维持高质量代码的
- 初学者如何开发出一个高质量的J2EE系统
- 初学者如何开发出一个高质量的J2EE系统
- 初学者如何开发出一个高质量的J2EE系统
- 初学者如何开发出一个高质量的J2EE系统
- 初学者如何开发出一个高质量的J2EE系统
- 初学者如何开发出一个高质量的J2EE系统
- 如何开发一个高质量的J2EE系统
- 初学者如何开发出一个高质量的J2EE系统
- 初学者如何开发出一个高质量的J2EE系统
- 如何开发出一个高质量的J2EE(转载)
- 初学者如何开发出一个高质量的J2EE系统
- 初学者如何开发出一个高质量的J2EE系统
- 引用类型的赋值、浅拷贝和深拷贝的区别
- hdoj.1050 Moving Tables 20140811
- hdu1213 - How Many Tables (基础并查集)
- 解决sliverlight,非button控件保存,光标未移开,binding的值不提交问题
- JQ tab 切换-局部刷新(关于index)
- 如何评估一个类是否是高质量的?
- REST介绍
- 关于typedef的用法总结
- hdu2819 Swap
- Android 众多的布局属性详解
- JVM动态生成的类演示和分析
- 2014暑假个人赛总结
- UIView(UIViewAnimationWithBlocks)
- 清除Android工程中没用到的资源