J'ai une application qui exécute plusieurs requêtes (query1, query2, query3) par rapport à une base de données, récupère des données et publie ensuite ces données.Conception appropriée
La façon dont je suis allé sur la conception de c'était:
a. Avoir une classe DB qui encapsule la connexion, l'exécution de la requête, la transformation du jeu de résultats en POJO.
b. Une classe éditeur qui sait comment publier le pojo.
c. Un contrôleur qui, au début, exécute a puis envoie la sortie à b.
public void start(){
List<DataPojo> pojoList = db.executeAndRetrieveResult();
for (DataPojo p : pojoList){
publisher.publish(p);
}
}
d. Un gestionnaire qui contient une liste de contrôleurs. Lorsqu'il est invoqué, itère et demande au contrôleur de démarrer.
public void start(){
for (Controller c : controllerList){
c.start();
}
}
La vie de l'application était simple et donc bonne.
Mais maintenant je dois faire une modification qui implique, en prenant des données de query1, en combinant avec les données de query2, puis en les publiant.
Auparavant, les contrôleurs étaient homogènes. La différence entre eux a été encapsulée dans la requête qu'ils ont exécutée (en utilisant la classe Db).
Cependant, maintenant j'ai besoin de savoir quel contrôleur exécute quelle requête donc je sais où obtenir la sortie de query1 et query2.
Est-ce qu'un motif de conception que je peux utiliser pour faire interagir le contrôleur1 et le contrôleur2 tout en les gardant relativement lâchement couplés?
Vive