gpt4 book ai didi

oop - 在哪里放置处理两个类之间关系的方法?

转载 作者:行者123 更新时间:2023-12-02 05:11:20 25 4
gpt4 key购买 nike

在我的应用程序中,我的产品在生产线的工位之间移动。产品在工作站的每一次通过都会记录一个结果:成功或失败。产品和站之间的关系是多对多的。

如果我使用过程语言编程,我将具有以下函数:

get_last_pass_result($station_id, $product_id) {...}

返回该特定产品最后一次通过该特定站的结果。

现在您将如何用 OOP 术语对这个逻辑建模?我肯定会有一流的站和一流的产品。但我应该这样做吗(php 语法):

$station->get_last_product_pass_result($product_id)

或者

$product->get_last_pass_on_station_result($station_id)

情况似乎是对称的,我想知道在这两者之间存在哪些考虑因素(或者甚至可能是第三种解决方案?)

我无法在此处提供有关域的所有现有信息,但可以随意包括以下考虑因素:如果 [关于域的假设] 那么 [您的设计解决方案],如果感觉合适的话

最佳答案

我的看法,但基于 DDD 原则,所以我不知道这是否符合您的需求,但无论如何...

所以您有一个和一个产品。我会说它们都是可以相互引用的实体,但您所谈论的逻辑包含这些实体,并且可能会被放入像 ProductPassingService 这样的域服务中,并具有像 GetLastPassFor(产品、站点)

此域服务将负责使用基础域实体 Station 和 Product(以及用于查询它们的存储库)并执行不属于 Station 和 Product 的逻辑。它使实体 Station 和 Product 免于承担过多的责任。

此外,域实体不应使用存储库 (DDD - the rule that Entities can't access Repositories directly),因此此逻辑属于域服务。

关于oop - 在哪里放置处理两个类之间关系的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15402711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com