Я ищу аккуратный способ реализации классного шаблона проектирования для моей коллекции геометрии.Прямо сейчас у меня есть черта Geometry
на вершине иерархии типов геометрии.Идея состоит в том, чтобы позволить каждой геометрии наследовать черту, а затем реализовать конкретный код для определенных типов геометрии.Как геометрические объекты эти геометрии должны реализовывать различные методы, конечно.Возьмем, к примеру, возможность рассчитать расстояние до любой другой геометрии - я назвал это distanceTo
.Самый чистый способ сделать это должен иметь метод с чертой Geometry
, например, так:
def distanceTo(geometry : Geometry) : Double
Моя проблема заключается в следующем: как мне реализовать этот метод в геометрии (скажем, Rectangle
) без проверки типов для каждой существующей фигуры?Есть ли какие-нибудь удобные способы делегировать запросы отдельным геометриям?
Cheers,