Bonjour,
Je souhaiterais avoir votre avis sur le problème de conception suivant :
- J'utilise le pattern MVP (Model-View-Presenter)
- Mon application possède un ContextManager, un modèle de calcul ModelC et un modèle de données ModelD.
- Un Presenter contient un ContextManager et peut contenir au plus un modèle.
(Je pars du principe que tous mes Presenter auront au moins un ContextManager sans quoi (pas de modèle ni de réaction aux événements), il n'a pas vraiment lieu d'être.
Pour vous donner une idée, vous trouverez ci-joint un bout de diagramme UML avec deux possibilités de conception.
D'après moi :
1) Erreur de logique (on peut passer via un mutateur un modèle qui n'est pas forcément celui attendu. Des cast et des conditions sur le type est alors requis à chaque utilisation du modèle spécifique).
2) Le défaut ici est le manque de symétrie entre le ContextPresenter et les ModelPresenter. Si plusieurs Presenter doivent contenir un modèle donné, il faut réimplémenter dans chaque Presenter le mutateur par exemple... (pas d'héritage multiple possible donc je ne peux pas hériter d'une class qui implémente déjà le mutateur depuis mes Presenter).
Si vous avez une idée d'optimisation, elle est la bienvenue
Merci!
Partager