Я читаю эту статью по EJB 3.0, где автор описывает архитектуру, в которой сервисный уровень взаимодействует с сущностями через DAO, реализованный как сессионный компонент без сохранения состояния.
Я пытаюсь понять, зачем нам нужен этот дополнительный уровень. Почему сервисный уровень не может напрямую общаться с сущностями? Мне приходит в голову -простота тестируемости. Мы можем легко протестировать сервисный уровень, смоделировав DAO.
Это единственная причина или есть и другие?