Don't Repeat Yourself.
——尽力避免重复,代码、注释、文档各种的重复
例如设计一个线段的类
Line{
public:
Point start;
Point end;
double length;
}
当改变start 或者 end 时 length都需要重新计算。违背了DRY原则。
正确的做法是添加setter 和getter
SetStart(Point s);
SetEnd(Point e);
GetLength();
——length 不需要每次都计算, 计算一次后缓存起来,在起止点更改后更新,因此还需要增加一个flag
Private:
isChanged;
//SetStart SetEnd 中设置为true, 在GetLength后设为false