1) Почему мы используем DTO
и DAO
и когда должны их использовать. Я разрабатываю GUI
программное обеспечение Java для вставки, редактирования и удаления данных. Но я изо всех сил , чтобы различать DTO/DAO
и Model
, View
, Controller
(MVC) Структура? Насколько они похожи, что лучше использовать при взаимодействии с базой данных через Java GUI
.
2) Одна вещь , которую я действительно интересно, является ли это хорошая практика , чтобы иметь view
и Controller
в одном классе. Если мы подумаем Netbeans
, вы можете создать GUI
класс кадра и добавить компоненты, например, JButton
в кадр, двойной щелчок по кнопке приведет вас к actionListener
методу (Контроллер), который, по-видимому, находится в кадре, данные должны отображаться для пользователя (Просмотр) , Значит, они в одном классе. Значит, это полностью противоречит концепции?
Вот о чем я говорю
плохая практика иметь представление и контроллер в одном классе?
Ответы:
DTO
- это аббревиатура от Data Transfer Object , поэтому она используется для передачи данных между классами и модулями вашего приложения.DTO
должен содержать только закрытые поля для ваших данных, методов получения, установки и конструкторов.DTO
не рекомендуется добавлять в такие классы методы бизнес-логики, но допустимо добавлять некоторые служебные методы.DAO
является аббревиатурой от объекта доступа к данным , поэтому он должен инкапсулировать логику для извлечения, сохранения и обновления данных в вашем хранилище данных (базе данных, файловой системе и т. д.).Вот пример того, как будут выглядеть интерфейсы DAO и DTO:
Это
MVC
более широкий образец. DTO / DAO будет вашей моделью в шаблоне MVC.Он говорит вам, как организовать все приложение, а не только часть, отвечающую за извлечение данных.
Что касается второго вопроса, если у вас есть небольшое приложение, это полностью нормально, однако, если вы хотите следовать шаблону MVC, было бы лучше иметь отдельный контроллер , который бы содержал бизнес-логику для вашего фрейма в отдельном классе. и отправлять сообщения этому контроллеру из обработчиков событий.
Это отделит вашу бизнес-логику от представления.
источник