2009-11-23 6 views
3

question pour ma mise en œuvre de MVP:château du CIO - la résolution des références circulaires

Actuellement, j'ai le code ci-dessous, dans lequel à la fois le présentateur et la vue sont résolus par le récipient.
Ensuite, le présentateur appelle View.Init pour se transmettre à la vue.

Je me demandais cependant s'il y avait un moyen de laisser le conteneur réparer ma référence circulaire (vue -> présentateur, présentateur -> voir).

class Presenter : IPresenter { 
    private View _view; 

    public Presenter(IView view, ...){ 
    _view = view; 
    _view.Init(this) 
    } 
} 

class View : IView { 
private IPresenter _presenter; 
public void Init(IPresenter presenter){ 
    _presenter = presenter; 
} 
} 

Amitiés

Frederik

+0

Que voulez-vous dire par "réparer ma référence circulaire". * En d'autres termes, que voulez-vous que le correctif soit? lequel perdrait la référence à l'autre? * –

Répondre

-1

Tant que vous mettez à la fois présentateur et Vue sur l'intérieur de la même csproject, il ne devrait pas y avoir de référence circulaire

+1

il s'agit de références de dépendances d'exécution, pas de références de code. –

0

Vous pouvez utiliser un poseur de propriété au lieu de passer la référence dans le constructeur.

Questions connexes