多个判别器的继承?

时间:2012-12-18 12:09:15

标签: c# inheritance

我仍处于使用多功能交易系统规划应用程序的早期阶段,该系统将考虑多种交易类型和支付处理程序。

说我有以下基类:

public class Transaction {
    public int Id { get; set; }
    public TransactionTypes Type { get; set; }
    public PaymentHandlers PaymentHandler { get; set; }
    public decimal Amount { get; set; }
}

其中TransactionTypes是确定事务类型的枚举。以下是交易类型为Product:

的示例
public class ProductTransaction : Transaction {
    public Address DeliveryAddress { get; set; }
}

PaymentHandlers是一个枚举,用于确定交易的支付处理程序。以下是付款处理程序为PayPal时的示例:

public class TransactionPayPal : Transaction {
    public string AccountName { get; set; }
}

但是我不确定我是否已经完全正确,因为我有两个不同的类,它们使用不同的Discriminator从Transaction继承。我假设有一些规则反对这个,因为我可以想象这会在以后插入和获取数据时引起问题。

我很欣赏如何实现这一目标的建议。感谢

1 个答案:

答案 0 :(得分:0)

根据史蒂文的建议,我重构了我的设计。现在我有一个TransactionHandler类型,它将处理程序信息与事务分开。最后,我在这两个类(数据库中的外键)之间添加了一个连接。