Ik ben een simpele Flash 'RIA' applicatie aan het maken om mijn mp3 die ik thuis heb op het werk te kunnen luisteren. Dit leek me ook een mooi moment om mij op MVC in Flash te storten (ik heb al ervaring met MVC in Zend Framework). Het bouwen vordert snel en ik heb de meeste functionaliteit gebouwd, maar ik loop tegen een probleem, of beter een vraag met betrekking tot MVC op.
Mijn MVC elementen hebben de volgende verantwoordelijkheden
Models: Models hebben elk properties met setters, getters en ze dispatchen een event als ze gewijzigd worden.
Views: De views hebben lists, datagrids en anders componenten. Deze luisteren naar de models en wijzigen de weergave wanneer de model veranderd.
Controllers: Mijn controllers luisteren naar user input op de view en wijzigen vervolgens de models.
Mijn probleem is: hoe koppel ik dit allemaal netjes? Op het moment initialiseer ik in mijn Main class eerst alle models, daarna de views en daarna de controllers. Ze worden allemaal aan een Registry object gehangen, en de views en controllers zoeken hier ook naar hun EventDispatchers (respectievelijk dus de models en views die er bij horen).
Mijn gevoel zegt echter dat dit tegen het idee van OO programmeren en MVC in gaat, omdat de code wel netjes is opgedeeld naar functie, maar wel bijna alle objecten centraal in een Registry hangen. Met het aantal models views en controllers wat ik op het moment heb is het nog goed te doen, maar ik kan me voorstellen dat als er een aantal dialogen (met extra views/controllers) bij komen het allemaal een wat moeilijker en onduidelijker wordt.
Is er een nettere methode om dit te doen, of zit ik al op de juiste weg?
Mijn MVC elementen hebben de volgende verantwoordelijkheden
Models: Models hebben elk properties met setters, getters en ze dispatchen een event als ze gewijzigd worden.
Views: De views hebben lists, datagrids en anders componenten. Deze luisteren naar de models en wijzigen de weergave wanneer de model veranderd.
Controllers: Mijn controllers luisteren naar user input op de view en wijzigen vervolgens de models.
Mijn probleem is: hoe koppel ik dit allemaal netjes? Op het moment initialiseer ik in mijn Main class eerst alle models, daarna de views en daarna de controllers. Ze worden allemaal aan een Registry object gehangen, en de views en controllers zoeken hier ook naar hun EventDispatchers (respectievelijk dus de models en views die er bij horen).
Mijn gevoel zegt echter dat dit tegen het idee van OO programmeren en MVC in gaat, omdat de code wel netjes is opgedeeld naar functie, maar wel bijna alle objecten centraal in een Registry hangen. Met het aantal models views en controllers wat ik op het moment heb is het nog goed te doen, maar ik kan me voorstellen dat als er een aantal dialogen (met extra views/controllers) bij komen het allemaal een wat moeilijker en onduidelijker wordt.
Is er een nettere methode om dit te doen, of zit ik al op de juiste weg?