Прежде всего, я прошу прощения за "еще один вопрос интерфейса". Я думал, что это, возможно, стоит спросить, хотя это как-то странная проблема. Проект, который я использую, использует ActionScript 3, но это более общий вопрос ООП.
Здесь ситуация:
У меня есть класс, который уже наследуется от базового класса; это объект в видеоигре. (Скажем, это космический корабль.) В моей игре я хотел бы иметь много много космических кораблей на экране, когда-то, поэтому я решил создать пул объектов, используя структуру связанных списков.
Логически, поскольку класс Spaceship уже наследуется от базового класса, я бы использовал интерфейс для определения методов, относящихся к связанному списку. Кроме того, это позволило бы мне распространить эти методы на другие классы - например, класс Asteroid, или Bullet класса или класс Particle.
Здесь проблема - сила интерфейса заключается в том, что он позволяет вам переопределить реализацию для каждого класса, который вы используете, на основе того, что вам нужно. Однако для чего-то вроде связанного списка код не будет меняться между классами. Поскольку я планирую иметь много классов, которые будут реализовывать эти методы пула объектов, мне бы очень хотелось избежать повторного использования одного и того же кода реализации снова и снова в каждом новом классе.
Вопрос: Есть ли способ избежать повторного использования одного и того же кода связанного списка для каждого класса, который я использую? Или это просто неизбежность? Похоже, это нарушает принцип "один раз и один раз". Можно ли определить полную функцию внутри блока наследования вместо своего прототипа?
Если это глупый вопрос, дайте мне знать. (Если я спрашиваю, есть ли это, это, вероятно, есть, но эй, не может учиться, не будучи глупым время от времени.) Кажется, что должен быть более логичный способ сделать что-то вроде этого.