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