Как избавиться от повторяющегося кода? Всем привет! У меня есть класс Attachments и еще несколько классов, которые его наследуют: ImageAttachment и VideoAttachment.
Эти классы используются всеми модулями на сайте: "новости", "посты", "комментарии" и т.д.
Когда я получаю из БД список вложений для какого-то из этих модулей, то мне нужно перебрать массив полученных данных, определить тип вложение и добавить его в список вложений любого из вышеописанных модулей....
Для этого, в каждом классе объектов (новости, посты, комментарии) есть метод addAttachment, который по сути везде одинаковый... Как мне избавиться от его повторения везде?
У меня была мысль создать некий абстрактный класс и все классы (новости, посты, комментарии) наследовать от него... Тогда у меня был бы один метод addAttachment, только в этом абстрактном родительском классе... Но мне кажется глуппо наследовать клас Comments от класса AbstractAttachments.
Надеюсь понятно объяснил... Ведь код приводить бессмысленно - он очень большой

21 Авг 2019 в 06:59
130 +1
0
Ответы
1

Для избавления от повторяющегося кода в методе addAttachment в различных классах (например, новости, посты, комментарии) можно использовать паттерн проектирования - композицию. Вместо того чтобы наследовать классы от родительского класса, вы можете создать отдельный класс, который будет отвечать за работу с вложениями (AttachmentsManager, например) и передавать экземпляр этого класса в конструктор каждого из ваших модулей.

AttachmentsManager может содержать метод addAttachment, который будет принимать массив данных о вложениях и добавлять их в соответствующий модуль (новости, посты, комментарии).

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

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 093 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир