Я думаю, что звонков на calculateLength
следует избегать, прежде чем они понадобятся. Поскольку это закрытый метод, его можно вызывать при необходимости, а не каждый раз, когда изменяется начало / конец. Это относится как к setStart
, так и к init
методам. Так что ответ да, это нарушение, и не единственное. Пример с одним вызовом длины может вообще не нуждаться в методе вычисления:
class Line {
private Point start;
private Point end;
public Line(Point start, Point end) {
this.start = start;
this.end = end;
}
void setStart(Point p) {
this.start = p;
}
double getLength() {
return start.distanceTo(end);
}
}
Потребуются ли для примеров с большим количеством вызовов предварительно вычисленное значение? Если это не называется миллион раз, может быть, нет. Так что атрибут длины тоже не нужен.