"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Les conditions de requête complexes doivent-elles être gérées dans le mappeur de données ou dans la couche de service ?

Les conditions de requête complexes doivent-elles être gérées dans le mappeur de données ou dans la couche de service ?

Publié le 2024-11-18
Parcourir:428

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

Comment gérer les conditions de requête complexes : mappeur de données par rapport à la couche de service

Lorsque vous traitez des conditions de requête complexes dans la programmation orientée objet, il Il existe deux approches principales : les gérer dans le mappeur de données ou dans la couche de service.

Approche du mappeur de données

Le modèle de mappeur de données est utilisé pour mapper des objets de domaine vers et à partir d'une base de données. Dans le contexte des conditions de gestion, le mappeur de données peut disposer d'une méthode générique get() qui accepte une liste de conditions. Par exemple, si nous voulons récupérer des livres par auteur, nous pourrions appeler BookDataMapper->get(['author' => 'John Doe']).

Cependant, si nous voulons utiliser plusieurs conditions qui nécessitent une requête complexe, telle que la recherche de livres par auteur et éditeur, nous pourrions étendre la méthode BookDataMapper->get() pour analyser les conditions. Alternativement, nous pourrions créer une nouvelle méthode comme BookDataMapper->getByAuthorAndPublisher().

Approche de la couche de service

La couche de service est responsable de la gestion de la logique métier de l'application. . Il peut servir d’intermédiaire entre le contrôleur et le mappeur de données. Dans le cas de la gestion de conditions de requête complexes, la couche de service pourrait appeler directement les méthodes de mappage de données plus spécifiques, telles que BookService->getByAuthorAndPublisher(). Cette approche réduirait la couche de service à un simple intermédiaire.

Comparaison des approches

L'approche du mappeur de données conserve les conditions au sein du mappeur de données, ce qui peut conduire à la logique conditionnelle s'échappant des objets du domaine. D'autre part, l'approche de la couche service conserve la logique de domaine au sein de la couche service, la rendant plus modulaire.

En fin de compte, le choix entre ces approches dépend des exigences spécifiques de l'application. Si la logique du domaine est relativement simple et que les requêtes complexes sont peu fréquentes, l'approche du mappeur de données peut être suffisante. Cependant, si la logique du domaine est complexe ou si les requêtes complexes sont fréquentes, l'approche de la couche service peut être plus appropriée.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3