Compte tenu du modèle de modèle de présentation, la vue, le modèle de présentation ou le modèle responsable de l'ajout de vues sur l'enfant à une vue existante au moment de l'exécution?

softwareengineering.stackexchange https://softwareengineering.stackexchange.com/questions/150843

Question

Je construis une application basée sur Flex 4 en utilisant le modèle de conception du modèle de présentation. Cette application aura plusieurs composants différents comme indiqué dans l'image ci-dessous.

enter image description here

Le MainView et le tableau de bord seront toujours visibles et ils ont chacun des modèles et des modèles de présentation correspondants si nécessaire. Ces vues sont facilement créées en déclarant leur MXML dans la racine de l'application.

<s:HGroup width="100%" height="100%">
    <MainView width="75% height="100%"/>
    <DashboardView width="25%" height="100%"/>
</s:HGroup>

Il y aura également de nombreuses vues WidgetViewn qui pourront être ajoutées au tableau de bord par l'utilisateur lors de l'exécution via une simple liste déroulante. Cela devra être accompli via ActionScript.

La liste déroulante doit toujours afficher ce que WidgetViewn a déjà été ajouté au tableau de bord. Par conséquent, certains états sur lesquels WidgetViewn ont été créés doivent être stockés. Étant donné que la liste des widgetViewn disponibles et lesquelles sont ajoutées au tableau de bord de DashView doivent également être accessibles à partir d'autres composants du système, je pense que cela doit être stocké dans un objet modèle.

Ma compréhension du modèle de conception du modèle de présentation est que la vue est très maigre. Il contient aussi près de zéro logique que pratique. La vue communique / se lie au modèle de présentation qui contient toute la logique de vue nécessaire. Le modèle de présentation est effectivement une représentation abstraite de la vue qui prend en charge un faible couplage et facilite la testabilité. Le modèle de présentation peut avoir un ou plusieurs modèles injectés afin d'afficher les informations nécessaires. Les modèles eux-mêmes ne contiennent aucune logique de vue.

J'ai donc plusieurs questions autour de cette conception.

  1. Qui devrait être responsable de la création des composants WidgetViewn et de les ajouter au tableau de bord? Est-ce la responsabilité du tableau de bord, de DashboardPresentationModel, DashboardModel ou autre chose? Il semble que le DashboardPresentationModel serait responsable de la création / de l'ajout / de la suppression des vues d'enfant de son affichage, mais comment faites-vous cela sans passer dans le tableau de bord à DashboardPresentationModel?
  2. La liste des composants WidgetViewn disponibles et visibles doit également être accessible à quelques autres composants. Est-il normal qu'une référence à un widgetViewn soit stockée / référencée dans un modèle?
  3. Y a-t-il de bons exemples du modèle de modèle de présentation en ligne dans Flex qui incluent également la création de vues sur les enfants au moment de l'exécution?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top