@ suggestion de Samuel est parfaitement adéquate lors de la collecte d'une ou deux valeurs de l'utilisateur.
Si vous obtenez beaucoup de valeurs, la solution dans votre question est bien aussi. Ne pas tomber dans l'optimisation prématurée et sur-concevoir une solution découplée. Par objet frontière, je suppose que vous faites référence à l'instance de structure de données référencée par le mainframe et la boîte de dialogue. Quel est le problème avec le dialogue et le mainframe référençant tous les deux cet objet? Quel est l'avantage de découpler l'objet frontière/de transfert dans ce scénario?
Le seul découplage que je pourrais voir ici serait de découpler le mainframe de l'implémentation spécifique qui lui fournit les données. Donc, plutôt que le mainframe instanciation Dialog et appel Dialog.ShowModal, l'injection de dépendance fournirait l'ordinateur central avec un IDataYouNeedGetter (qui passerait à être la même boîte de dialogue modale) et au moment opportun l'ordinateur central ferait
myGetter.SetTransferObject(dataStructInstance)
myGetter.GoGetTheData()
// do stuff with dataStructInstance now that myGetter set it up.
MAIS, il n'y a aucune raison d'ajouter une couche d'indirection sauf si vous connaissez déjà un besoin spécifique pour le découplage.
choisiriez-vous cette approche - qui est une version plus propre de ce que je propose - sur la communication basée sur l'événement? – JohnIdol
Je penche vers cette solution – JohnIdol