MDB может содержать ссылки на другой EJB, ресурсы соединения JMS и любые другие источники данных или ресурсы соединения с базой данных.Кроме этого, он не должен содержать никакого состояния (например, компонент без состояния, не содержащий состояния клиента).MDB не доступны напрямую клиентам, и интерфейс не открывается, mdbs асинхронно прослушивает сообщения от клиентов.
Итак, проверьте, сохраняют ли экземпляры MDB какие-либо данные или диалоговое состояние для конкретного клиента.Обычно контейнер должен иметь возможность назначать сообщение любому из mdbs, а также объединять экземпляры, так что потоки сообщений от нескольких клиентов могут обрабатываться одновременно.Таким образом, разделяя проблемы, как и для любого другого класса, здесь также будет иметь свои преимущества, MDB должен делать то, что он должен делать, перемещать бизнес-логику, связанную с обработкой сообщений, в другой экземпляр EJB (если требуются сервисы contianer).
Ценность разделения интересов упрощает разработку и обслуживание компьютерных программ.Когда проблемы хорошо разделены, отдельные разделы могут быть повторно использованы, а также разработаны и обновлены независимо.Особое значение имеет возможность впоследствии улучшать или модифицировать один раздел кода без необходимости знать детали других разделов и без необходимости вносить соответствующие изменения в эти разделы.
см. Вики Разделение интересов .Отдельный класс должен быть ejb, если вам требуются контейнерные сервисы, такие как транзакция.