2008-10-01 6 views
0

Vous gérez le même présentateur travaillant avec différents référentiels à l'aide du modèle MVP?Même présentateur travaillant avec différents référentiels

Je viens d'avoir plusieurs surcharges de constructeur et le présentateur utilise simplement celui qui convient au scénario.

AddCustomerPresenter presenter = new AddCustomerPresenter(this,customerRepository); 
presenter.AddCustomer(); 

presenter = new AddCustomerPresenter(this,archiveRepository); 
presenter.Archive(); 

Répondre

0

Merci Will!

Mais CustomerRepository et ArchiveRepository ne sont en aucune façon liés. Ce sont deux choses complètement différentes.

1

Pourquoi ne pas avoir

IRepository { /* .. */ } 
CustomerRepository : IRepository { /* .. */ } 
ArchiveRepository : IRepository { /* .. */ } 

puis

AddCustomerPresenter { 
IRepository Store {get;set;} 
public AddCustomerPresenter(IRepository store) { /*...*/ } 
/*...*/ 
} 

Votre présentateur ne devrait avoir aucune dépendance statique sur toute mise en œuvre de IRepository. Si vous trouvez qu'il n'y a pas d'autre moyen, vous devez retravailler votre design car il est probablement défectueux.

Questions connexes