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