Je voudrais utiliser le modèle Model View Presenter pour une bibliothèque contenant des commandes utilisateur qui seront utilisées dans d'autres projets. Selon MVP, je dois implémenter une interface IView sur un contrôle utilisateur et la transmettre à une classe Presenter.MVP - Contrôles Utilisateur - Cacher l'interface IView des consommateurs?
Dans mon cas, les consommateurs n'ont pas besoin d'accéder au contrat IView. Mais étant donné que l'interface IView est un contrat public, cela signifie que les utilisateurs du contrôle utilisateur peuvent également accéder à ses méthodes \ properties et que celles-ci ne sont accessibles qu'au Presenter.
Quelle est une bonne manière d'accomplir ceci?
Bonjour RS Conley Merci pour votre réponse. Je ne comprends pas complètement ce que vous voulez dire mais il y a une chose que je fais que vous conseillez qui ne met pas en œuvre le IView sur le contrôle de l'utilisateur. Actuellement, je le fais comme ceci: Dans le contrôle de l'utilisateur, j'ai créé une classe imbriquée qui accepte le contrôle de l'utilisateur dans son constructeur. La classe imbriquée implémente IView et connaît le présentateur. De cette façon, je peux cacher le contrat IView des consommateurs du contrôle et je gère tout dans la classe imbriquée. – anagels
Cette classe est juste un substitut pour le contrôle alors. Ce que je voulais savoir, c'est que la vue est la forme, pas la commande, même indirectement, à travers une classe d'aide. Seul le temps que je peux penser quand un contrôle peut être assimilé à une vue est qu'une forme a plusieurs onglets ayant chacun une vue du modèle et chacun des onglets est implémenté dans un contrôle. Il serait alors logique d'avoir un contrôle implémentant une vue (directement ou indirectement). –