Как часть подсистемы огородить фасадом? Или чем — то еще? Всем привет.
Подскажите про паттерны и архитектуру.
Дано: есть несколько классов каждый содержит экземпляр(ы) предшествуюжего.
Курс содержит уроки, урок содержит тест, тест содержит вопросы, вопрос содержит ответы.
Решил что надо сделать из этого подсистему/модуль.
вроде как, это фасадом делают как я понял.
Сделал фасад, туда макс логики перенес из контроллеров.
получилась овермного методов
по моему, сильно лучше не стало. удалил этот фасад.
вот думаю как это по уму сделать?

21 Авг 2019 в 07:00
212 +1
1
Ответы
1

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

Паттерн композит позволяет объединить объекты в древовидную структуру для представления их иерархии. В вашем случае, вы можете создать интерфейс, который будет представлять урок, тест, вопрос и ответ. Каждый класс (урок, тест, вопрос, ответ) будет реализовывать этот интерфейс.

Затем вы можете создать класс, который будет представлять вашу подсистему/модуль и будет содержать коллекцию уроков. Этот класс будет иметь методы для добавления, удаления и получения уроков, тестов, вопросов и ответов.

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

Это лишь одно из возможных решений. Решение зависит от конкретных требований вашего проекта. Не стесняйтесь экспериментировать и искать наилучшее решение для вашей системы.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир