Есть ли какая-либо польза от использования интерфейса просто потому, что группа объектов имеет несколько общих методов?Необходимы ли интерфейсы для простых общих методов?
Например, у меня есть GameObject
, GameComponent
и GameLevel
. Каждый из них имеет функции onUpdate()
и onDraw()
.
Должен ли я создать интерфейс IGameEntity
, который содержит onUpdate()
и onDraw()
, и каждый из них реализует его? У меня нет намерения хранить какой-либо список IGameEntity
или любую аналогичную ситуацию, когда мне нужен только доступ к этим двум функциям, так ли этот уровень абстракции конструктивен?
YAGNI применяется здесь, я думаю.Вы всегда можете определить этот интерфейс позже, если вы * do * в конечном итоге хотите его использовать. – Blorgbeard
Очень верно, с минимальными изменениями в объявлениях функций. Спасибо за ответ! –
@ aceads0529 Интерфейс - это своего рода контракт, который класс выполняет так, если вы хотите, чтобы класс обязательно реализовал некоторые функции, вы должны использовать интерфейс, чтобы гарантировать, что его хорошая практика программирования – Kayani