J'ai besoin d'un conseil à partir de l'une des approches de conception que nous considérons.Utilisation de DAO en tant que commande
Nous implémentons un fournisseur de services Web Java qui agit sur les données dans une base de données relationnelle. Nos proposer des cours sont:
- IDAO - interface avec méthode execute()
- GetCustomerDAO et UpdateCustomerDAO implémente IDAO
- DAOFactory - Liste des DAO pour être lit le fichier de configuration qui a une cartographie de OTI à être invoqués un service particulier.
- ServiceImpl - contient les méthodes getCustomer, updateCustomer. Le service utilise DAOFactory pour obtenir la liste des objets DAO, puis itère sur la liste et appelle la méthode DAO.execute.
Je pense que c'est plus comme si nous avions converti des DAO en commande. Cependant, je n'aime pas assez cette approche pour certaines raisons: - Dans ServiceImpl: vous ne pouvez pas influencer le flux des DAO appelés. Par exemple après l'exécution de la première DAO si je ne veux pas exécuter la deuxième DAO mais exécuter la troisième DAO, il est difficile d'avoir ceci mis en application. - en outre ne sais pas si nous pouvons utiliser conceptuellement DAO. car un objet Command peut avoir une logique métier, mais les objets DAO ne doivent traiter que des aspects de lecture et d'écriture de données sur db.
S'il vous plaît laissez-moi savoir votre point de vue si le design semble approprié. merci
grâce wal teurs. Donc, votre suggestion consiste essentiellement à appeler directement les méthodes DAO dans ServiceImpl. J'aime cette approche. – Rohit
Oui. La couche de service délègue la persistance au DAO (en utilisant l'injection de dépendances). – walters
@Walters pourriez-vous donner un exemple d'une classe de couche Business que l'une des méthodes de UserServiceImpl utilise? :) – will824