使用不同存储库的同一主持人

时间:2020-03-06 14:59:12  来源:igfitidea点击:

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

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

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

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

解决方案

为什么没有

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

接着

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

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

谢谢威尔!

但是CustomerRepository和ArchiveRepository没有任何关系。它们是完全不同的两件事。