如何在此类层次结构中设置对象的状态?

时间:2017-03-20 14:01:03

标签: oop generics interface

我用这个层次结构设计了我的类来实现

  1. RepositoryBase具有派生类可以使用的一些功能。
  2. 派生类实现验证保存
  3. 使用IRepository接口(而不是众多客户接口)注册IoC容器以获取存储库的实例,例如本例中的CustomerRepository
  4. 我对此设计的问题是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.
        }
    }
    

0 个答案:

没有答案