Как правильно описать класс?

Пишу программу, есть класс треугольник. Так же есть отдельные классы точка(просто две координаты), линия(две точки). Инициализируется объект по координатам, содержит три поля - вершины типа точка. Однако мне необходимо во время работы использовать линии, причем постоянно одни и не же, то есть стороны. Например, чтобы искать периметр, длины сторон, проверять на равнобедренность, и т.д. Вопрос в том, как правильнее оформить класс: добавить три поля типа линия, или каждый раз вычислять их каким либо методом? И вообще, где можно получить информацию как правильно описывать классы?


Ответы (1 шт):

Автор решения: Pavel Grishaev

Зависит от того, будут ли эти линии меняться в дальнейшем у данного объекта. Если у него только конструктор и нет изменений точек, то есть смысл кэшировать вместо постоянного вычисления. Если будут изменения - то тут уже нужно смотреть что выгоднее по ресурсам и удобству - обновлять кэш линий или считать их постоянно. Какого-то единственного подхода нет - везде свои нюансы. И нужно учиться не так, как все пишут, а пониманию зачем они это делают.

→ Ссылка