Je viens de refacturer une nouvelle classe de domaine à partir d'une classe de présentateur, mais je n'arrive pas à déterminer où l'instancier.Où dois-je placer la création de dépendances pour une classe Presenter dans une architecture Passive View?
Cela fait partie d'un effort de refactoring plus important avec un projet hérité mal entretenu.
Le présentateur est en cours de création par l'événement OnLoad de la vue et la vue est transmise en tant que paramètre dans le constructeur. Toutes les méthodes publiques dans le présentateur sont sans paramètre et retournent le vide. Ils communiquent avec la vue en utilisant les propriétés publiques de la vue. La vue, étant essentiellement une forme humble dépend entièrement du présentateur pour tout.
Ceci est le modèle de vue passive typique et je voudrais continuer à y adhérer. Ce qui m'amène à mon dilemme. J'ai besoin de créer une instance de mon nouvel objet de domaine pour le présentateur à utiliser. Si je le passe à travers le constructeur, alors la vue doit le créer et obtenir une dépendance non nécessaire.
Je suis ouvert à toutes suggestions.
Votre motif est intéressant. Votre vue correspond au mode de vue passif, mais je ne l'ai jamais vu avec un présentateur et un contrôleur.Les exemples que j'ai vus ont le présentateur en train de soulever des objets lourds et de parler aux objets du domaine et à un magasin de données. Tandis que le tien a un présentateur comme un intermédiaire et le contrôleur faisant le travail. Quel est l'avantage de la couche supplémentaire? –
L'avantage est évident ... tout le travail lourd est fait présentateur la responsabilité du contrôleur est de gérer la navigation dans des scénarios complexes. Ici est réalisé la navigation découplée, par exemple pour les assistants où les vues ne connaissent pas les autres ... tout est géré par le contrôleur. – ruslander