gpt4 book ai didi

algorithm - 如何处理域类中的依赖行为?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:13:15 25 4
gpt4 key购买 nike

假设我有一个域类,它有函数,要按顺序调用。每个函数都完成其工作,但如果序列中的前一步尚未完成,则会抛出错误。另一种方式是每个函数完成它运行所需的步骤,然后执行自己的逻辑。我觉得这种方式不是一个好的做法,因为我添加了多个职责,并且调用者不知道在他调用一个方法时所有操作会发生什么。

我的问题是,如何处理 DDD 中的依赖场景。调用者有责任以正确的顺序调用方法吗?或者我们是否让这些方法在它自己的逻辑之前处理依赖操作?

最佳答案

Is it the responsibility of the caller to invoke the methods in the right sequence?

如果这些方法具有商业意义,那也没关系。例如,客户可以预订航类,然后预订酒店房间。这两者都是客户端理解的东西,并且按此顺序调用它们是客户端的逻辑。另一方面,将预订插入数据库,然后提交(或其他)是技术性的。客户根本不必处理这个问题。或者“初始化”一个对象,然后调用其他方法,然后调用“关闭”。

要求一系列技术调用是时间耦合的一种形式,它被认为是一种不好的做法,与 DDD 没有直接关系。

解决方案是更好地建模问题。调用者可能希望通过此调用序列实现更高级别的用例。因此,与其发布所需的单个“步骤”,不如作为一个整体支持更高级别的用例。

一般来说,您应该始终以这样的目标进行设计,即让任何有效调用序列真正意味着某些东西(只要语言允许)。

更新:上述"file"域的可能模型:

public interface LocalFile {
RemoteFile upload();
}

public interface RemoteFile {
RemoteFile convert(...);

LocalFile download();
}

关于algorithm - 如何处理域类中的依赖行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55096822/

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