давайте подумаем о простой операции с пользователем. Мои классы, связанные с весной, чтобы сделать это задание: UserController
, UserService
, UserServiceImpl
, UserDAO
, UserDAOImpl
.Какова наилучшая практика для шаблона service-dao?
На стороне контроллера я звоню userService.insert(new User())
и в userService.insert()
метод я звоню userDAO.insert(user)
. Я думаю, что существует дублирование метода по этой схеме.
Есть ли способ избежать дублирования методов? Может быть, моя кодировка неисправна. Я жду ваших ответов, опыт ...
благодарственное заранее ...
да некоторые методы обслуживания существуют различные шаги DAO взаимодействия, но% 70 моих методов обслуживания есть только одна линия что-то вроде xDAO.saveOrUpdate() или xDAO. delete() и т. д. Поэтому я спрашиваю себя, почему я не использую непосредственно методы DAO при использовании этих методов% 70. Как вы думаете? – user1153321
Прямое воздействие базового DAO (скажем, прямого вызова от контроллера) не обязательно является плохим.это зависит от вашего варианта использования, сложности приложения и вашего «будущего» плана. лично я люблю абстракцию слоя «службы» в середине, поскольку это дает мне комнату, чтобы «вырасти» в будущем (выполнять больше операций, чем просто направление DAO) и поддержку проверяемость и т.д., это может быть столь же спорно, как интерфейс > Аргумент реализации ", если я никогда не буду делать больше, чем x, зачем создавать интерфейс?" –