Je suis en train de refactoriser et de réorganiser mon application pour le moment. J'ai réalisé qu'une partie de la séparation entre les modèles et les vues, et leurs contrôleurs a diminué et je souhaite faire un peu de nettoyage.MVC dans une application basée sur un document Cocoa
J'ai plusieurs classes clés utilisées dans mon application: NSPersistentDocument, NSWindowController et une classe de modèle.
La classe NSPersistentDocument agit en tant que "model-controller"; il possède une instance de la classe modèle et gère toutes les interactions avec le modèle.
La classe NSWindowController agit en tant que "view-controller"; il possède la fenêtre principale et gère les interactions des vues dans la fenêtre principale. Cette classe est également le propriétaire du fichier nib dans lequel la fenêtre est définie.
Le problème que je vois ici est que je n'ai pas de réel "contrôleur". Ma conception actuelle oblige le contrôleur de modèle et le contrôleur de vue à se connaître. Il n'y a pas d'objet méditant entre les deux, et à cause de cela, mon modèle et ma vue ne sont pas clairement séparés, ce qui rend le support de plusieurs vues ou modèles un problème. Je voudrais déplacer la fonctionnalité de mes deux contrôleurs existants dans une nouvelle classe de «contrôleur» qui agirait comme un contrôleur entre le contrôleur de modèle et le contrôleur de vue. En fin de compte, ce n'est encore que le modèle de conception MVC, avec juste un peu plus de structure.
Cependant, j'ai de la difficulté à trouver comment cela pourrait s'intégrer dans l'architecture d'application basée sur les documents de Cocoa.
La plus grande question que j'ai est où et comment ce nouvel objet de contrôleur serait créé? Comment cela s'intègre-t-il dans l'architecture de Cocoa? Est-ce que je me bats contre l'architecture de Cocoa, et y a-t-il une meilleure façon de le faire?
Merci.