2011-06-09 5 views
6

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.

Répondre

1

Mon 2 cents: MVC est un modèle de conception de présentation. J'écris généralement mes applications MVC avec des couches de données et d'entreprise distinctes, à l'exception de la partie MVC. Il est correct que Image ne soit pas à part du modèle MVC, il ferait probablement mieux de s'intégrer dans un groupe de classes que vous définiriez comme votre couche de gestion. Il y a beaucoup de bons livres, de blogs et d'articles qui parlent des programmes de conception de programmation, donc je ne vais pas répéter ce qu'ils ont déjà fait. Le simple fait de poser cette question est un bon début. Je vous suggère de suivre en regardant le contenu qui est déjà disponible.

+0

Auriez-vous la gentillesse de me diriger vers un livre que vous considérez comme un traitement approprié? – saad