Я разрабатываю игру, но не могу полностью разобраться со структурой наследования.Я обычно довольно хорош в этом, но у этого слишком много совпадений, и я не могу решить все это.
Я пытаюсь смоделировать парусные суда - подумайте, Эпоха Паруса.Предположительно поэтому все расширяет класс судна.
Существует несколько типов судов: гребная (камбузы, каноэ), квадратная, передняя и задняя части, с различным поведением.Каждый из них подразделяется на несколько других типов.Я не могу решить, должна ли это быть серия интерфейсов или расширений Vessel.Заметьте также, что может быть некоторый переход (судно может быть как гребным, так и квадратным), что заставляет меня думать, что интерфейсы?
Суда также ведут себя по-разному: торговые суда, военные люди, каперы, пираты.Я действительно не могу понять, должен ли это быть интерфейс или расширение другого класса.Однако в данном случае пересечение типов отсутствует.
Наконец, есть несколько вариантов поведения, которые могут иметь отдельные корабли.Торговцы могут быть в конвое (защищать себя) или независимыми (убежать).Люди войны почти всегда атакуют, если не сильно вооружены ... но могут работать во флотах, эскадронах или независимо.Каперы и пираты атакуют только слабее - обычно независимо, но иногда парами.Я предполагаю, что это тоже должен быть интерфейс?
Моя большая проблема в том, что каждый стиль корабля (фрегат, линкор и т. Д.) Может выполнять практически любую из этих ролей, поэтому я не могу построить простое телоструктура наследования.Фрегат не может продлить войну, потому что некоторые из них - каперы.Шлюп не может вытянуть квадратную оснастку, потому что некоторые из них носовые и кормовые.etcetc.
Любые мысли будут оценены по достоинству, я немного не в себе.Спасибо