Расширение класса с общей функциональностью

У меня есть три класса, которые в основном делают очень похожие вещи;

  1. Сохраните запись загруженного файла.
  2. Переместите и загрузите файл.
  3. Установите статус записи как активный или отозванный.

Один из классов имеет дополнительный метод обновления. Каждый класс ссылается на свою таблицу в базе данных, поскольку, хотя некоторые поля являются общими, в некоторых таблицах есть несколько дополнительных полей.

Поскольку довольно много функциональных возможностей является общим, я думаю, что лучше расширить базовый класс, а не дублировать большую часть функциональных возможностей.

Моя единственная ссора - это функция конструкции в базовом классе. Поскольку некоторые поля в каждой таблице являются дополнительными, я обеспокоен тем, что это предотвратит базовый класс.

Я думал об использовании абстрактного класса, так как это позволит мне расширить функциональность, сохраняя при этом большинство вещей в одном месте. Но это проблема с конструкцией. Могу ли я иметь абстрактный класс без конструкции?

Есть идеи?

2 ответа

Если я вас понимаю: вы можете иметь любой класс без __construct(), И вы всегда можете перезаписать каждый метод (кроме методов, которые объявлены как final) родительского класса в дочернем классе.

Извините, но я не совсем понимаю ваш вопрос. В любом случае, в унаследованном классе вы всегда можете переопределить конструктор и в нем вызвать конструктор суперкласса, а также дополнительные вещи, если это необходимо.

Другие вопросы по тегам