2012-12-18 20 views
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是一個枚舉,它確定交易的付款處理程序。下面就是一個例子,當支付處理程序是貝寶:

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

但是我不知道我有這非常正確,因爲我有從繼承的事務用不同的鑑別兩個不同的類。我認爲有一些規則反對這個,因爲我可以想象這會在稍後插入和獲取數據時引發問題。

我會很感激這應該如何實現的建議。謝謝

+0

爲什麼'java'標籤? – SJuan76

+3

您正在建立一個給定類型的邏輯('Transaction'),以支持不同的類型? ('PaymentHandlers'枚舉)你應該重新思考你的設計並使用正確的多態性來代替。 –

+0

您是否首先檢查沒有開源項目這樣做? –

回答

0

根據史蒂文的建議,我重構了我的設計。現在我有一個TransactionHandler類型,它將處理程序信息與事務分開。最後,我在這兩個類(數據庫中的外鍵)之間添加了一個連接。