Расширение класса с общей функциональностью - PullRequest
1 голос
/ 09 декабря 2010

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

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

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

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

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

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

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2010

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

0 голосов
/ 09 декабря 2010

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

...