Bonjour,
Le titre est flou, je vais essayer de l’exposer, tout d’abord je programme en C++, ce qui justifie la place de ce post bien que cela soit un problème de conception.
Dans le cadre d'un projet de fin d'études, je dois analyser des séquences d'images vidéo. Vu qu'il y'a une cascade de traitements une implémentation en classes s'impose.
Ca devient très vite compliqué du fait qu’il y'a des indicateurs statistiques qui doivent être pré calculer, en plus de flags pouvant influer sur une décision algorithmique ultérieure. De plus ces flags doivent pouvoir être changés au cours des chaines de traitements. Par exemple : Si rejet de l’image= TRUE alors stoppe le processus de calcul et détruit l´image.
Mais voila le truc c'est que pour chaque image d'entrée ou je calcule ces indicateurs (histogramme, variance…), il me faut ces données (calculées une fois pour toutes) et disponibles pour d’autres classes le temps de l’image mais évidemment sans que ces autres classes ne les recalculent. Ces classes pouvant seulement changer le statut de certains Flags.
Pour préciser plus, j’ai mon main (un GUI + tard) qui ne fait que de recevoir les images et qui envoie ladite l’image plus quelques indications vers une « classe centrale » qui va pré analyser cette image avec la classe « pré analyse de l’image » et instancier d’autres classes de traitement qui auront besoin des attributs de la classe « pré analyse de l’image ».
Pour l’instant, il y’a une relation d’amitié entre ma « classe centrale » et ma classe « pré analyse de l’image » mais par exemple la « classe segmentation » n’a pas instanciée d’objet de la classe « pré analyse de l’image » et ne peut pas lire les données. D’ailleurs cette classe a par exemple besoin de 2 données parmi 20 présentes et agit sur un flag.
Alors comment les rendre disponibles sans que la classe centrale ne doive envoyer a droite a gauche des bouts de données ou carrément la structure complète comportant ces données. D’ailleurs c’est la première solution que j’ai retenu et ça fait vite usine à gaz et pire encore si la liste et le type des attributs s'allongent.
Je préférai aussi éviter que la classe centrale soit amie avec tout le monde et que seulement la classe « pré analyse de l’image » le soit et donc que cette classe existe et reste instanciée par la classe centrale.
Je me rends bien compte que c’est un problème de débutant mais ca fait déjà toute la journée que je me casse les dents dessus. D’ailleurs je dois dire qu’en relisant ca a l’air pas clair et que je resterai longtemps encore débutant devant l’éternel de la programmation.
Je suis prêt à recevoir toute aide ou suggestion, je préférerai quand même garder une structure en classe pour des raisons de clartés et de transmission de projet.
Merci de votre aide.
Damien
Partager