Даниил,
Это хорошая практика, чтобы использовать фронт-контроллер, большинство людей Арен» t знал об этом шаблоне проектирования.
Это действительно хороший шаблон дизайна для использования, потому что он обеспечивает доступ к приложению через единую точку входа. Вы можете контролировать все, что приходит и идет легко, с меньшей конфигурацией. Вы уменьшаете количество возможного дублирования кода, потому что есть одна точка входа. В дополнение к тому, чтобы иметь меньше кода для обслуживания, код должен быть проще следовать, поскольку есть только один способ. Затем вы можете легко следовать потоку выполнения приложения.
К сожалению, для Seam нет на самом деле шаблона переднего контроллера. Я не потратил столько времени, сколько хотел бы разработать свой собственный, но безопасность и аудит - это мой центр номер один.
Что касается диспетчеров страниц/приложений, в Seam у вас есть больше контекстов или областей. Событие, Страница, Разговор, Сессия, Приложение, чтобы назвать большинство из них.
Если вы разрабатываете контроллер или в Seam, действие страницы, большую часть времени, оно будет основано на событиях. Это самый короткий срок действия. Если у вас есть потоки страниц, вы затем будете использовать компоненты с областью обмена текстовыми сообщениями.
Взгляните на примеры в исходном коде. Вы можете сделать многое с очень маленьким кодом, это потрясающе, но в то же время происходит много событий, которые могут занять некоторое время, чтобы забрать.
Проект n-level, который не подходит для большинства мест, не обязательно применяется здесь. Для большинства моих страниц я определяю запрос, который я буду использовать в XML (запрос сущности), затем я введу его в свое действие на страницу и вызову там. Поэтому вместо того, чтобы иметь классы контроллера, службы, дао и сущности, вы получаете просто действие страницы, запросы и классы сущностей. В большинстве случаев вы можете отключить службы и уровни dao.
Все ваше определение службы также может измениться. Для меня услуга - это поставщик услуг, такой как уведомление, безопасность (аудит), обработка исключений и т. Д. Все эти службы работают в фоновом режиме и не привязаны к конкретному HTTP-запросу.
Walter