Я действительно не знаю, как сформулировать эту проблему, поэтому я попытаюсь объяснить это на примере.Реализовать те же методы в разных классах
Скажем, у меня есть три GUI класса:
- Базовый класс Поверхность
- Подробное Класс поверхности
- Sprite Класс
Все они независимы друг от друга, нет наследования среди их. Теперь у меня есть функция drag(), которая позволяет перемещать поверхность/спрайт, и я хочу реализовать эту функцию как метод для всех трех из них.
Поскольку это тот же самый код для всех реализаций, я нахожу это раздражающей, громоздкой и плохой практикой, чтобы переписать код. Единственное, что я придумал до сих пор, это сделать для него класс saperate и наследовать этот класс. Но это тоже не похоже.
Я бы очень благодарен за совет.
EDIT
Другой пример с несколько иной настройки - У меня есть следующие классы:
- BaseSurface
- Dragable
- Resizable
- EventHandler
Только первый независим, другие зависят от первого (должны быть унаследованы). Конечный пользователь должен, без каких-либо усилий, иметь возможность выбирать между простым BaseSurface, один с которым реализует dragable, один с возможностью изменения размера, один с eventHandler и любую комбинацию. «Без каких-либо усилий» я подразумеваю, что конечный пользователь не должен создавать собственный пользовательский класс и наследовать нужные классы, а также вызывать соответствующие методы (init, update, ...), которые разделяют некоторые классы.
Так что я мог бы сделать класс для каждой возможной комбинации, например. «BaseSurfaceDrag», «BaseSurfaceDragResize», ... , который будет очень беспорядочным. Каков другой и лучший подход к этому?
Сделать родительский класс и унаследовать от него три класса - это именно то, что нужно сделать. Это предназначенное использование классов. – TigerhawkT3