Как организовать семейство классов?

A1x

Новичок
работать именно с объектами как со структурой.
а чем не устраивает обычный паттерн Composite?
общий абстрактный класс SkyObject
примитивные типы - Star, Planet, Moon, Comet, Asteroid, BlackHole .... extends SkyObject
абстрактный составной тип-контейнер - CompositeSkyObject extends SkyObject (добавляет коллекцию компонентов-потомков, методы addChild(SkyObject $o), getChildren(...), etc.)
конкретные составные типы Galaxy, SolarSystem, PlanetSystem ... extends CompositeSkyObject

каждый объект имеет в качестве родительского компонента один из составных типов, простые типы, например звезда, не могут иметь потомков (на то они и простые)
системы с двойными/тройными звездами создаются без проблем... но проверять тип добавляемого чилда прийдется с помощью дополнительной логики
 

fixxxer

К.О.
Партнер клуба
Очень опасно рассуждать о применении паттернов на примере одних структур данных, без бизнес-логики.
 

AnrDaemon

Продвинутый новичок
То есть, описанная вами выше задача уже решена.
Автомат в его существующем виде решает совсем другую задачу - раскатка ресурсов по базе для дальнейшего поиска ресурсов же. Он даже структуру системы не распознаёт, я уже не говорю о том, чтобы определять возможные ошибки построения этих систем.
Сейчас стало интересно считать метаданные, простраивать собственно систему для расчёта навигации.
Это игра, исходные данные предоставляются сервером. Собственно поэтому и известны ограничения на взаимное расположение небесных тел.
 

WMix

герр M:)ller
Партнер клуба
а если зарегюсь, наделишь перса силой невьегромадою, усыпишь сокровищницу золотом. или чем там в космосе платят, наградишь артефактами?
 

AnrDaemon

Продвинутый новичок
Я то тут при чём? :confused: Я простой игрок.
Может, менее любимый, особенно некоторыми избранными членами сообщества.
 

AnrDaemon

Продвинутый новичок
В смысле?… это не браузерка, если ты это имел в виду.
 
Сверху