Если у меня есть модель данных «Пользователь», а другая представляет «Пост», эти две модели вместе представляют ядро бизнес-логики c, приложения для социальных сетей, где основными игроками здесь являются Пост и Пользователь. И у меня есть несколько моделей, выпущенных как для пользователя, так и для поста. И они представляют функции в бизнес-логике c, например, есть модель комментариев (это связь между публикацией и пользователем), и у меня есть отношение взаимодействия, где пользователю может понравиться сообщение или нет.
Я хочу создать приложение, имеющее базовую логику бизнеса c (здесь - «Почта» и «Использование»), и его функции могут быть добавлены или нет. или Иногда я хочу добавить некоторые, а некоторые нет.
Например, я хотел бы использовать приложение без поста, чтобы иметь комментарий. Поэтому я хочу, чтобы процесс добавления и удаления этих функций был как можно более простым.
Проблема в том, что я не могу отделить функции от основной логики c. Например, когда я пытаюсь получить данные модели, конечно, будут включены некоторые данные других моделей, это затрудняет устранение этих функций в будущем.
Так что в репозитории Post у меня может быть следующее code:
$postResponse = Post::where('id', $post_id);
$postResponse->Comments = Post->comments()->where('user_id', $user_id);
// and so on ...
Если я захочу удалить функцию «Комментарий» и все опубликованные данные, это будет огромная работа.
Мне интересно, какой шаблон лучше всего использовать в этот случай? Я только что прочитал о SOLID Принципах, но я не могу применить их в этом случае, например, как применить Принцип Единой Ответственности для разделения выборки данных и их составления в целом?