设计库存管理中的转移模式

Design a transfer pattern in inventory management

我正在为库存管理软件设计 Class 图。基本上它有 3 个概念:ItemBox 和一个 class 关联 Distribution,如下所示.

一个物品可以放在多个不同数量的箱子里。一个 Box 可以有很多 Items,当然,数量是不同的。并且它们之间的关系只有当一个盒子确实有一个项目并且在 Distribution class 中记录为 distributedQuantity 时才会形成。

现在我正在努力设计一个 class 来记录从一个盒子到另一个盒子的传输项目。暂且称之为转账概念,包括执行日期和转账数量

将特定物品从第一个盒子转移到第二个盒子时可能会发生以下情况:

最初,我尝试link 传输到 Distribution,因为这个概念同时包含 Item 和 Box 的数据。但它只适用于第一个和第二个盒子都转移了物品的情况。

我不知道是否有针对此的标准(事务)模式。

Transfer 的实例用于记录 历史 Distribution 的实例所发生的事情。有两种建模方法。

1.复制Transfer

中的所有信息

不要将 Transfer 与任何可以删除的内容相关联,因为如果删除它,您将丢失信息。我想 Item、Box 和 Distribution 的实例都可以删除。复制Transfer属性中的所有信息。这意味着 Transfer 的属性中存储了有关商品、第一个盒子、第二个盒子和 transferredQuantity 的所有信息。 Class 传输没有任何关联。

2。不删除对象,但将它们标记为已死

在这种方法中,您不会删除任何对象,只是在它们不应该再存在时将它们标记为已死亡。您可以通过添加布尔属性 'dead'(或 'deleted')来实现。现在,您可以将 Transfer 与 Item 和 2 Boxes 相关联。让 Transfer 具有属性 'transferredQuantity'。这种方法的缺点是,当您需要使用额外的 类 和关联扩展模型时,您经常需要意识到模型中有死对象,这可能会影响多重性。