0

私はまだ、複数のトランザクション タイプと支払いハンドラーに対応する多用途のトランザクション システムを備えたアプリケーションを計画する初期段階にあります。

次の基本クラスがあるとします。

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

ここで、TransactionTypes は、トランザクションのタイプを決定する列挙型です。以下は、トランザクション タイプが製品の場合の例です。

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

PaymentHandlers は、トランザクションの支払いハンドラを決定する列挙型です。以下は、支払いハンドラが PayPal の場合の例です。

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

ただし、異なる Discriminator を持つ Transaction から継承する 2 つの異なるクラスがあるため、これが正しいかどうかはわかりません。後でデータを挿入して取得するときにこれが問題を引き起こすと想像できるので、これに対して何らかの規則があると思います。

これをどのように達成すべきかについてのアドバイスをいただければ幸いです。ありがとう

4

1 に答える 1

0

Steven の提案に基づいて、デザインをリファクタリングしました。これで、ハンドラー情報をトランザクションから分離する TransactionHandler タイプができました。最後に、これら 2 つのクラス間の結合 (データベースの外部キー) を追加しました。

于 2012-12-18T13:22:52.663 に答える