на моем рабочем месте (только для php) у нас есть базовый класс для абстракции базы данных. Если вы хотите добавить новую базовую таблицу базы данных на базовый уровень, вам необходимо создать подкласс этого базового класса и переопределить некоторые методы для определения индивидуального поведения для использования этой таблицы. Нормальное поведение должно оставаться неизменным.
Теперь я видел много новых программистов в нашей компании, которые просто переопределяют метод поведения по умолчанию. Некоторые из них настолько "хороши", чтобы использовать все поведение по умолчанию и просто добавлять туда отдельные вещи, где им это нравится, другие убивают себя, пытаясь использовать базовый класс и их наследник.
Моя первая мысль, чтобы решить эту проблему, касалась абстрактных методов, которые должны быть переопределены путем наследования классов. Но помимо других аргументов против абстрактных методов, "абстрактные" просто не показывают, почему базовый класс нельзя использовать сами по себе и почему эта функция должна быть переопределена.
После некоторых поисковых запросов я не нашел хорошего ответа на реализацию "реальных" виртуальных функций в php (просто есть виртуальная функция, которая почти убивает все надежды на конкретную реализацию).
Итак, что бы вы сделали с этим вопросом?