Я иногда видел использование подклассов только в семантических целях, и мне было интересно узнать о плюсах и минусах этого, и следует ли это считать хорошей практикой или нет.
Например:
С семантическими подклассами
Список классов:
- abstract class V3
(это вектор с атрибутами x, y и z и некоторые методы манипуляции)
- class Lengths extends V3
(он просто расширяет V3 и не добавляет новые методы или атрибуты)
- class Point extends V3
(просто расширяет V3)
Таким образом, некоторые методы, такие как void setCuboidLengths(Lenghts l)
, будут принимать только классы Lengths в качестве аргумента, а другие, например, Point getCuboidCenter()
, будут возвращать объект Point.
Без семантических подпунктов.
Только один класс:
- class V3
Вместо использования более специфических c классов мы используем обобщенные c V3: void setCuboidLenghts(V3 v)
, V3 getCuboidCenter()
.