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