Разница реализации между статическим методом и методом экземпляра

Описание

Немного абстрактный вопрос, решение которого я не могу точно найти уже долгое время.
У вас есть класс для работы с координатами, который включает метод расчета дистанции между двумя точками:

class Point2D {
  static getDistanceBetween(point1: Point2D, point2: Point2D): number {
    return Math.hypot(point1.x - point2.x, point1.y - point2.y);
  }
  getDistanceFrom(other: Point2D): number {
    return Point2D.getDistanceBetween(this, other);
  }
}

Вопрос

Правильно ли иметь этот метод как статический и как метод экземпляра?
Применимо ли это к другим методам, например, к методу клонирования?
Насколько это логично?
Насколько оптимизировано?


В общем я бы хотел, чтобы вы сказали все сильные и слабые стороны данного контекста и как бы вы посоветовали поступить в подобных ситуациях.

Дополнительно

Вопрос подписал как , но язык в данном контексте имеет очень малую разницу.


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