permet d'assumer un contrôleur MVC de ressort simple qui reçoit l'identifiant d'un objet de domaine. Le contrôleur doit appeler un service qui devrait faire quelque chose avec cet objet de domaine. p>
Où "Convertissez-vous" l'identifiant de l'objet de domaine dans l'objet de domaine en le chargement de la base de données? Cela ne devrait pas être fait par le contrôleur. Ainsi, l'interface de la méthode de service doit utiliser Accepter l'objet ID B> de l'objet de domaine B> au lieu de l'objet de domaine lui-même. Mais l'interface du service serait plus agréable si elle prend l'objet de domaine comme paramètre. p>
Quelles sont vos pensées sur ce cas d'utilisation commun? Comment résolvez-vous cela? p>
3 Réponses :
Dans un projet de mien, j'ai utilisé la couche de service:
Je pense que cela dépendrait de savoir si le service est à distance ou local. En règle générale, j'essaie de passer des identifiants dans la mesure du possible aux services distants, mais préférez les objets pour ceux locaux. P>
Le raisonnement derrière cela est qu'il réduit le trafic réseau en envoyant uniquement ce qui est absolument nécessaire aux services distants et empêche de multiples appels à DAOS pour les services locaux (bien que la mise en cache hibernate peut être un point muet pour les services locaux). p>
Le contrôleur doit passer l'identifiant dans la couche de service, puis revenir tout ce qui est nécessaire pour rendre le reste de la réponse HTTP.
SO - P>
public Map<String,Object> getStuffByDomainObjectId(int id) { DomainObject domainObject = dao.getDomainObjectById(id); domainObject.businessLogicMethod(); return domainObject.map(); }