Je viens de reprendre un ancien projet et j'ai réfléchi à en réécrire certaines parties.Essayer de suivre MVC - Demander conseil sur un bon design
Ma question concerne comment structurer mon programme. J'ai essayé de suivre le paradigme MVC. Je vais commencer par expliquer où les choses se passent: le programme manipule 4 types d'images: Bias, Darks, Flat Fields et Lights. J'ai une classe appelée Image
qui peut représenter tout cela. Le biais et l'obscurité sont soustraits de la lumière et ensuite la lumière est divisée par le champ plat. Initialement, j'allais utiliser 2 classes pour cela, l'une appelée CalibrationImage et l'autre juste Light. Mais la différence était seulement d'une méthode qui serait la fonction de division que j'ai mentionnée ci-dessus. Sinon, ils sont identiques. J'ai donc décidé de ne pas avoir deux classes à cet effet.
La 2ème classe principale du programme concerne la gestion de plusieurs objets Image
- cette classe est connue sous le nom ImageStacker
. En ce moment, il contient Image
objets dans un tableau mutable. Il peut effectuer diverses opérations sur ce tableau, comme empiler toutes les images, les calibrer, etc.
Cette classe agit également comme source de données pour l'objet NSTableView
dans la fenêtre principale. Je ne pense pas qu'au lieu d'avoir un seul tableau mutable, je devrais avoir 4 tableaux chacun tenant son désigné pour un type d'image (comme, un tableau pour les lumières, un autre pour Darks, etc.). Une fois que le programme commence son travail réel, il sera Darks, Flat Fields et Bias cadres. Il va ensuite calibrer chaque objet contenu dans le tableau Lights puis les empiler. J'ai l'impression que cela donne au programme une progression logique. C'est aussi un peu facile à visualiser.
Est-ce une bonne conception de programme? Est-ce que ça suit MVC? Comme je le vois, ma vue est NSTableView
, le contrôleur est NSApplication
et le modèle est ImageStacker
. Mais alors, Image
se sent comme si elle ne fait pas partie du MVC mais je ne vois pas comment écrire le programme sans elle.
Auriez-vous la gentillesse de me diriger vers un livre que vous considérez comme un traitement approprié? – saad