下面显示的所有内容都是纯伪代码来说明我的问题。
我的代码具有以下数据结构:
// Used to define the ORDERS a customer has placed
List<Orders> myOrders;
Orders
{
String name
double quantity
String location // there are only 2 possible locations
}
// Used to define the ITEMS we have available
Item
{
String name
List<Parts> parts
}
// Used to define the PARTS to make an ITEM
Parts
{
String name
double quantity
}
一般故障似乎很好而且很清楚,但是客户要求是我遇到问题的地方,我不确定如何最好地解决问题......(注意 - 我知道使用 NAME 而不是 ID 是不好关联的 - 但这是一个遗留系统)。
我需要生成以下内容: - 每个位置所需的所有零件列表(只有两个可能)和订单定义的实际数量 - 将其显示在要打印的屏幕上!显然,您可以在同一位置为相同的零件订购多个订单,并且应该将它们加在一起以获得总数。
所以我需要做的是: - 接受每个订单并找到项目 - 接受每个项目并找到零件 - 每个零件定义其位置(来自订单)并乘以数量(来自订单),这就是零件的数量这个位置
最终结果应该是这样的(表格网格表格标题)
Item Part QuantityLocation1 QuantityLocation2
itm1 A 1 0
B 4 2
itm2 C 0 5
问题是很明显 PART 类没有 LOCATION 这样的概念......
有人有什么建议吗?我现在能看到的唯一解决方案似乎很糟糕......创建一个新类(如 PartswithLocation),将位置添加到它,然后使用此 PartsWithLocation 重新创建所有 ITEM 对象(已经存在),然后我可以做一些魔术ORDER by ORDER 查找零件并根据位置和数量相乘。最终结果是一个新列表,然后我可以在网格或其他东西(WPF)中显示它......但是这听起来很难看......
这纯粹是一个与设计相关的问题,我不是在寻找源代码,只是关于如何更好地解决我的问题的一些想法。感谢您的时间和帮助,