Стоит ли использовать шаблон команды для запросов, включающих очень мало логики? ⇐ JAVA
Стоит ли использовать шаблон команды для запросов, включающих очень мало логики?
Я новичок в разработке шаблонов и хочу лучше понять, когда следует реализовывать шаблон команды. Насколько я понимаю, шаблон команды предназначен для инкапсуляции запроса и логики, необходимой для выполнения этого запроса, в отдельный объект.
Имеет смысл создать команду для более сложного запроса, например создания и сохранения отчета в формате PDF о каком-либо результате из базы данных. Например:
публичный класс PdfExport реализует команду { частный MyEntityDao someDao = новый MyEntityDaoImpl (); общественный PdfExport(...) { // Здесь настраиваем команду... } @Override общественный недействительный выполнение () { Данные List = someDao.getData(); // Сложная логика создания и экспорта PDF... } } Но предположим, что у нас есть чрезвычайно простая задача, например удаление одной записи по ее полю имени. Например:
публичный класс DeleteRecordByName реализует команду { частный MyEntityDao someDao = новый MyEntityDaoImpl (); Строковое имя; public DeleteRecordByName (имя строки) { это.имя = имя; } @Override общественный недействительный выполнение () { someDao.deleteByName(имя); } } Как видите, во второй команде действительно нет никакой логики. Единственная причина, по которой я мог это сделать, заключается в том, что у вас многоуровневая архитектура и вы хотите, чтобы ваши DAO не попадали в клиентский код или сохраняли историю команд.
Есть ли польза от создания команды для такой простой операции, как удаление одной записи?
В качестве дополнительного вопроса: необходимо ли задействовать определенный объем логики, прежде чем создание командного объекта приобретет какой-либо смысл?
Я новичок в разработке шаблонов и хочу лучше понять, когда следует реализовывать шаблон команды. Насколько я понимаю, шаблон команды предназначен для инкапсуляции запроса и логики, необходимой для выполнения этого запроса, в отдельный объект.
Имеет смысл создать команду для более сложного запроса, например создания и сохранения отчета в формате PDF о каком-либо результате из базы данных. Например:
публичный класс PdfExport реализует команду { частный MyEntityDao someDao = новый MyEntityDaoImpl (); общественный PdfExport(...) { // Здесь настраиваем команду... } @Override общественный недействительный выполнение () { Данные List = someDao.getData(); // Сложная логика создания и экспорта PDF... } } Но предположим, что у нас есть чрезвычайно простая задача, например удаление одной записи по ее полю имени. Например:
публичный класс DeleteRecordByName реализует команду { частный MyEntityDao someDao = новый MyEntityDaoImpl (); Строковое имя; public DeleteRecordByName (имя строки) { это.имя = имя; } @Override общественный недействительный выполнение () { someDao.deleteByName(имя); } } Как видите, во второй команде действительно нет никакой логики. Единственная причина, по которой я мог это сделать, заключается в том, что у вас многоуровневая архитектура и вы хотите, чтобы ваши DAO не попадали в клиентский код или сохраняли историю команд.
Есть ли польза от создания команды для такой простой операции, как удаление одной записи?
В качестве дополнительного вопроса: необходимо ли задействовать определенный объем логики, прежде чем создание командного объекта приобретет какой-либо смысл?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение