我正在进行涉及管理产品库存的任务。具体来说,我们给出了一个接口IProduct和IInventory来实现。大部分都是直截了当的,但我遇到了设计障碍,我对最佳实践感到疑惑。
对于Inventory类的后备字段,我有两种选择:列表或字典(自定义类可能有点过分)。作业要求我们:
鉴于这些要求,我准备跳入并将私有字段作为字典,但后来我看到了要求:
我想知道这种情况下最好的行动方案是什么。我在两个想法之间徘徊:
我应该采取以上哪些行动,或者我应该做一些完全不同的事情?
答案 0 :(得分:0)
我将它实现为List<InventoryItem>
(或任何特定类代表库存项目)的包装器。像这样:
public class Inventory {
private List<InventoryItem> inner = new List<InventoryItem>();
public void Add(InventoryItem item) {
if (inner.Exists(x => x.Name == item.name)) {
throw new ArgumentException("Duplicate item");
} else {
inner.Add(item)
}
}
public List<InventoryItem> OrderedByName() {
return inner.OrderBy(x => x.Name);
}
public List<InventoryItem> OrderedByDate() {
return inner;
}
public InventoryItem this[int i] {
get {
return inner[i]
}
}
}