2つの抽象クラスがあります。ビジネス&人。問題は、私がビジネスか人かのどちらかになることができる顧客タイプがあることです。私は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
このプロジェクトでは、他の制約(私の元の質問ではない)のためにこのメソッドを使用できるかどうかはわかりませんが、この解決策はベストですこれまでのところ見つかった。ありがとう、エド。 – Chris