在这种情况下,我应该为ReceivedLineItem类使用继承或组合吗?

时间:2016-05-22 03:39:35

标签: c# oop

我有两个类 - LineItem和ReceivedLineItem。可以多次接收订单项。例如,用户订购5台笔记本电脑(笔记本电脑作为订单项),每周用户收到1台笔记本电脑。在这种情况下,我应该使用ReceivedLineItem是一个LineItem还是一个LineItem有多个收到的订单项?

public class LineItem
{
    public int LineItemID { get; set; }
    public int QuantityOrdered { get; set; }

    //public List<ReceivedLineItem> ReceivedLineItems { get; set; }

}

public class ReceivedLineItem: //LineItem
{
    public int ReceivedLineItemID { get; set; }
    public int QuantityReceived { get; set; }

}

1 个答案:

答案 0 :(得分:1)

ReceivedLineItem是一个LineItem可能是一个不错的选择。然后你只需要QuantityReceived属性。 LineItem有一个ReceivedLineItem可能不是一个好的设计选择,因为订购和接收之间有一段时间。所以,直到以后才需要考虑接收信息。可以下订单然后取消订单而不发货/收货等。

public class LineItem
    {
        public int LineItemID { get; set; }
        public int QuantityOrdered { get; set; }
    }

    public class ReceivedLineItem : LineItem
    {
        public int QuantityReceived { get; set; }
    }

    // execution code somewhere..
        ...
        public List<ReceivedLineItem> Items { get; set; }