«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Должны ли сложные условия запроса обрабатываться в преобразователе данных или на уровне обслуживания?

Должны ли сложные условия запроса обрабатываться в преобразователе данных или на уровне обслуживания?

Опубликовано 18 ноября 2024 г.
Просматривать:562

Should Complex Query Conditions Be Handled in the Data Mapper or the Service Layer?

Как обрабатывать сложные условия запроса: Data Mapper vs. Service Layer

При работе со сложными условиями запроса в объектно-ориентированном программировании Существует два основных подхода: обработка их в сопоставителе данных или на уровне сервиса.

Подход сопоставителя данных

Шаблон сопоставителя данных используется для сопоставления объектов домена и из базы данных. В контексте обработки условий преобразователь данных может иметь общий метод get(), который принимает список условий. Например, если мы хотим получить книги по автору, мы могли бы вызвать BookDataMapper->get(['author' => 'John Doe']).

Однако, если мы хотим использовать несколько условий, требующих сложный запрос, например поиск книг по автору и издателю, мы могли бы расширить метод BookDataMapper->get() для анализа условий. В качестве альтернативы мы могли бы создать новый метод, например BookDataMapper->getByAuthorAndPublisher().

Подход уровня сервиса

Уровень сервиса отвечает за обработку бизнес-логики приложения. . Он может выступать в качестве посредника между контроллером и преобразователем данных. В случае обработки сложных условий запроса уровень сервиса может напрямую вызывать более конкретные методы преобразования данных, такие как BookService->getByAuthorAndPublisher(). Такой подход сведет уровень обслуживания к простому посреднику.

Сравнение подходов

Подход с устройством отображения данных сохраняет условия внутри устройства отображения данных, что может привести к к условной логике, вытекающей из объектов предметной области. С другой стороны, подход на уровне сервиса сохраняет логику предметной области внутри уровня сервиса, что делает его более модульным.

В конечном счете, выбор между этими подходами зависит от конкретных требований приложения. Если логика предметной области относительно проста, а сложные запросы встречаются нечасто, подхода с использованием преобразователя данных может быть достаточно. Однако если логика предметной области сложна или сложные запросы выполняются часто, подход уровня обслуживания может оказаться более подходящим.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3