可能的重复:
属性与方法
在许多情况下,某些东西应该是属性还是方法是显而易见的,但是有些项目可能被认为是模棱两可的。
明显的属性:
- “姓名”
- “长度”
明显的方法:
- “发信息”
- “打印”
模糊的:
- “有效”/“IsValid”/“验证”
- “InBounds”/“IsInBounds”/“CheckBounds”
- “AverageChildValue”/“CalcAverageChildValue”
- “颜色饱和度”/“设置颜色饱和度”
我想我会倾向于使用模棱两可的方法,但是有人知道有助于决定这一点的规则或约定吗?例如,所有属性都应该是 O(1) 吗?属性是否应该不能更改其他数据(ColorSaturation 可能会更改 R、G、B 值)?如果有计算或聚合,它不应该是一个属性吗?
只是从学术的角度来看,(而不是因为我认为这是一个好主意)是否有理由不对属性发疯,而只是在不争论的情况下对课堂进行审讯,以及所有可以改变的事情具有单个参数且不能失败的类,一个属性?