相同的Presenter使用不同的存储库

时间:2008-10-01 17:01:49

标签: design-patterns

您是否使用MVP模式管理使用不同存储库的同一演示者?

我只有多个构造函数重载,而演示者只使用适合该场景的那个。

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

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

2 个答案:

答案 0 :(得分:1)

为什么没有

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

然后

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

您的演示者不应该对IRepository的任何实现有任何静态依赖。如果你发现没有其他方法,你需要重新设计你的设计,因为它可能存在缺陷。

答案 1 :(得分:0)

谢谢你!

但是CustomerRepository和ArchiveRepository没有任何关联。它们是两个完全不同的东西。