Modele d`exposé cm2

Donc, bien que je puisse déplacer la plupart du comportement au modèle de présentation, la vue conserve encore une certaine intelligence. Pour que l`aspect de test du modèle de présentation fonctionne mieux, il serait agréable de bouger plus. Certes, vous pouvez déplacer plus dans le modèle de présentation en déplaçant la logique de synchronisation là-bas, au détriment d`avoir le modèle de présentation en savoir plus sur la vue. L`une des parties les plus importantes de votre application est le modèle de présentation. Il est responsable de la tenue de l`état actuel de votre vue qui est visible pour l`utilisateur ainsi que la transformation de votre modèle de domaine dans le modèle de présentation. Le modèle de présentation sait ce qui doit être affiché à l`utilisateur, qui est déterminé par les mises à jour du modèle déclenchées par le présentateur. Par exemple, lorsque la liste des utilisateurs est extraite de l`API, le présentateur définit la liste des utilisateurs dans le modèle de présentation et en fonction de ces données, le modèle sait si l`alerte pour un anniversaire d`utilisateur doit être affichée ou non, et quels utilisateurs sont «affectés». La logique est encapsulée dans les méthodes publiques du modèle: pour ce faire, le modèle de présentation aura des champs de données pour toutes les informations dynamiques de la vue. Cela ne comprend pas seulement le contenu des contrôles, mais aussi des choses comme si oui ou non ils sont activés. En général, le modèle de présentation n`a pas besoin de contenir tout cet état de contrôle (qui serait beaucoup), mais tout État qui peut changer pendant l`interaction de l`utilisateur.

Ainsi, si un champ est toujours activé, il n`y aura pas de données supplémentaires pour son état dans le modèle de présentation. Cela nous amène à la deuxième grande caractéristique de MVVM: le ViewModel remplace le Controller. C`est MVVM, pas MVMVC. La plupart des gens disent MVVM quand ils sont vraiment parler de quelque chose de beaucoup plus proche d`un modèle de présentation. «iOS MVVM» est le reflet d`une réflexion. C`est WaLuigi. Lorsque quelqu`un clique sur la case à cocher classique, la case à cocher modifie son état, puis appelle le gestionnaire d`événements approprié dans la vue. Ce gestionnaire d`événements enregistre l`état de la vue vers le modèle de présentation, puis se met à jour à partir du modèle de présentation (je suppose une synchronisation à gros grains ici.) Le modèle de présentation contient la logique qui indique que le champ compositeur n`est activé que si la case à cocher est cochée, de sorte que lorsque la vue se met à jour à partir du modèle de présentation, le contrôle de champ compositeur modifie son état d`activation. J`ai indiqué sur le diagramme que le modèle de présentation aurait généralement une propriété spécifiquement pour marquer si le champ compositeur doit être activé. Cela va, bien sûr, juste retourner la valeur de la propriété isClassical dans ce cas-mais la propriété distincte est importante parce que cette propriété encapsule la façon dont le modèle de présentation détermine si le champ compositeur est activé-indiquant clairement que Cette décision relève de la responsabilité du modèle de présentation.

Ils imaginaient que les ingénieurs jetteraient juste un ViewModel à leur concepteur, et le concepteur pourrait construire une GUI autour de lui sans écrire n`importe quel code. Ils accomplissent cela par la plus grande caractéristique de définition de MVVM: liaisons de données.