Сделай шаг назад.
Я подозреваю, что вы ставите телегу здесь, перед лошадью. ООП само по себе не является хорошей вещью, это метод эффективного решения проблем. Проблемы, такие как: «У меня большая многопрофильная организация программистов с различными наборами навыков и опытом. Мы создаем крупномасштабное сложное программное обеспечение, в котором многие подсистемы взаимодействуют друг с другом. У нас ограниченный бюджет».
ООП хорош для этой проблемной области, потому что он подчеркивает абстракцию, инкапсуляцию, полиморфизм и наследование. Каждый из них хорошо работает в программном пространстве для многих команд. Абстракция позволяет одной команде использовать работу другой, не разбираясь в деталях реализации, тем самым снижая стоимость связи. Инкапсуляция позволяет одной команде знать, что они могут вносить изменения в свои внутренние структуры, чтобы сделать их лучше, не беспокоясь о затратах на воздействие на другую команду. Полиморфизм снижает стоимость использования множества различных реализаций данной абстракции, в зависимости от текущей потребности. Наследование позволяет одной команде опираться на работу другой, аккуратно повторно используя существующий код, а не тратить время и деньги на его переизобретение.
Все эти вещи хороши не сами по себе, а потому, что они снижают затраты в сценариях программного обеспечения для большой команды.
Снижают ли они затраты в сценариях с одним паролем? Я не думаю, что они делают; Я думаю, что они повышают затраты. Точка наследования - экономия времени за счет повторного использования кода; если вы тратите больше времени на создание идеальной иерархии наследования, чем время, которое вы экономите за счет повторного использования кода, это не чистый выигрыш, а чистый убыток. Аналогично со всеми остальными: если у вас не так много разных реализаций одной и той же вещи, то тратить время на полиморфизм - это потеря. Если у вас нет никого, кто собирается использовать вашу абстракцию, или кого-то, от кого вам нужно защищать свое внутреннее состояние, тогда абстракция и инкапсуляция - это затраты без сопутствующих преимуществ.
Если вы хотите написать тетрис в ОО-стиле для практики написания в этом стиле, во что бы то ни стало, продолжайте в том же духе и не позволяйте мне вас останавливать. Я просто говорю: не думайте, что у вас есть моральное требование использовать ООП для решения проблемы, для решения которой ООП не подходит; ООП - не самое главное в стилях разработки программного обеспечения.