Есть класс Ship(корабль)
Есть класс ShipType(тип корабля c его характеристиками - ну там скорость, маневреность и т.д.)
Нужно ли в Ship хранить в сво-ве ShipType, либо это лучше сделать через shipTypeId поле?
Нужно ли в самом Ship хранить id?
Или в приципе в констурктор Ship передавать объект ShipType и с него записывать в аналогичные поля(скорость/маневренность и т.д.) все поля с ShipType?
TheRevan,
Нормальные люди создают наследование от общего класса - корабль. И создают конкретный тип корабля, который в конструкторе указывает свои характеристики.
В твоём случае, если ты хочешь хранить характеристики отдельно, достаточно хранить ссылку на объект типа
TheRevan, сделать можно всегда что угодно и как угодно. На то программирование и есть обычный инструмент. Ставь всегда вопрос "для каких задач", если нужно что-то идендифицировать, то не стесняйся никогда добавлять айдишники или другие классы-контейнеры. Дабы разделять подтипы твоих типов (хз правда зачем, и у наследия и у полиморфизма, есть конкретные цели, если они не нужны, то и использовать не стоит).
Гнаться за мелочами в "производительности" в таких вещах не стоит от слова совсем. Только разве что почесать свое эго.
Тони Хоар впервые произнёс, а Дональд Кнут впоследствии часто повторял известное высказывание: «Преждевременная оптимизация — это корень всех бед». Очень важно иметь для начала озвученный алгоритм и работающий прототип.
Я к чему: не тратьте время, сделайте для начала работающий прототип. Пофигу как. После этого поймёте, что можно улучшить. Сразу идеально сделать не получалось и не получается ни у кого.