我用这个层次结构设计了我的类来实现
RepositoryBase
具有派生类可以使用的一些功能。IRepository
接口(而不是众多客户接口)注册IoC容器以获取存储库的实例,例如本例中的CustomerRepository
。我对此设计的问题是customer
构造时CustomerRepository
对象未知。它必须在save
之前设置。
如何重新设计此层次结构以实现此问题开头提到的三个层次结构?
public class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
public void string GetFullName();
}
public interface IRepository
{
void Save();
}
public abstract class RepositoryBase<T> : IRepository
{
public abstract bool IsValid();
}
public class CustomerRepository : RepositoryBase<Customer>
{
public void Save()
{
IsValid(); // Check for validation
customer.GetFullName(); // Generate the FullName before saving
// Save the data using some RepositorBase method.
}
}