我有兩個抽象類Business & Person。問題是我有一個可以是商業或個人的客戶類型。有沒有辦法對此進行建模,以便我沒有CustomerBusiness和CustomerPerson類?多重繼承不是一個選項,因爲這是C#。我一直在看這個這麼長時間,我看不到樹林。試圖避免類結構中的多個子類型
public abstract class Business {
public string Name { get; set; }
}
public abstract class Person {
public string FirstName { get; set; }
public string LastName { get; set; }
public string MiddleName { get; set; }
public DateTime? BirthDate { get; set; }
public string Comments { get; set; }
}
public class CustomerBusiness : Business, CustomerRoles {
public bool BillTo { get; set; }
public bool ShipTo { get; set; }
public bool DeliverTo { get; set; }
public EntityType Type { get; set; }
}
public class CustomerPerson : Person, CustomerRoles {
public bool BillTo { get; set; }
public bool ShipTo { get; set; }
public bool DeliverTo { get; set; }
public EntityType Type { get; set; }
}
public interface CustomerRoles {
bool BillTo { get; set; }
bool ShipTo { get; set; }
bool DeliverTo { get; set; }
}
謝謝埃德,我開始看到你的觀點。我需要澄清的是,我認爲我需要保持業務和人員類的抽象,因爲將有其他類將始終具有業務和人員屬性集。例如:供應商,部門,部門等... – Chris 2012-02-27 15:27:48
我不確定我能否使用這個方法,因爲在這個項目中有其他限制(不是我原來的問題),但這個解決方案是最好的答案到目前爲止已經找到了。謝謝,埃德。 – Chris 2012-02-28 13:04:57