Я недавно взялся за простой php-проект, чтобы немного лучше узнать ООП.
По сути, проект состоит из одной таблицы, в которую можно вставить несколько предметов разных типов (продукты питания, мебель, электроника и т. Д.).
У меня есть abstract class Items()
, который создает соединение с базой данных и определяет abstract function save_item()
. У меня также есть класс для каждого типа элемента, который расширяет Items (), т.е. class FurnitureItem extends Items()
Класс ItemsFactory()
просто генерирует правильный объект.
Это сделано из-за того, что каждый тип элемента имеет немного разные свойства и входные данные должны обрабатываться по-разному.
Однако у меня также есть такие функции, как fetch_items()
(просто выводит все элементы из таблицы) и delete_items()
(массовое удаление элементов, не заботящихся об их типе). Эти функции функция не имеет отношения к типу элемента.
У меня вопрос, куда мне положить fetch_items()
и delete_items()
?
Очевидно, что они не имеют отношения к конкретному типу элементов (поэтому их не следует определять в дочерних классах), однако определение их в родительском классе Items()
кажется нелогичным, поскольку дочерние классы также наследуют эти функции. Но они не должны, по вышеуказанной причине.
Должен ли я создать новый класс только для этих функций? Тогда, по сути, я буду делать класс, который содержит только общие функции проекта.
Буду признателен за любую помощь!