在干净架构的背景下,“用例(Use Case)”和“交互器(Interactor)”是什么意思?

7

在“干净架构”的背景下,什么是用例和交互器?我看到用例包含业务逻辑,但如果有演示层,为什么要使用用例?我们可以在Presenter中放置业务逻辑。


简化: “干净架构”中的 Use Case 和 Interactor 是什么?Use Case 包含业务逻辑,但是如果已经有了 Presentation Layer 和 Presenter,为什么还需要 Use Case?

1
https://proandroiddev.com/why-you-need-use-cases-interactors-142e8a6fe576 - Shubham AgaRwal
3个回答

7
在清洁架构中,“用例”和“交互器”意思相同:它是包含业务逻辑的组件。在这种架构中,Presenter不包含任何业务逻辑。Presenter的工作是将由用例交互器返回的数据结构映射到对视图最方便的数据结构。

3
“用例(Use Case)”这个术语,据我所知,是由计算机先驱伊瓦尔·雅各布森(Ivar Jacobson)创造或至少正式化的。它强调了一种特定的系统视角,即以用户为中心的视角,也就是问,用户想通过该系统实现什么目标?一个用户与一个系统的端到端交互就是一个用例。
我在这个上下文中没有听说过“交互器(Interactor)”这个术语,但也许这就是雅各布森所称的“演员(Actor)”。这两个词非常相似。
假设你想转账。你打开转账网页,输入金额,选择收款人或输入新的收款人信息,提供一次性密码,然后看到你的转账正在进行中。这就是一个用例。
用例可以有多个场景。例如,在这个例子中,如果你没有足够的资金会怎样?如果你的收款人信息无法验证会怎样?如果你多次错误地输入一次性密码会怎样?如果你尝试在短时间内转移大量或许多小额资金会怎样?
此外,用例可以有前置条件,例如,你必须已经通过身份验证才能开始进行转账用例。身份验证将在其他地方指定,并作为前置条件记录,以保持整洁。后置条件还可以指定用例完成后系统的状态。
最后,执行用例的演员可能根本不是人--它可能是另一个系统。
最近,我听说了“客户旅程(Customer Journey)”这个术语,它似乎意味着相同或至少类似的概念。
底线: “用例(Use Case)”这个术语并不特定于系统的实现方式。相反,用例被用来从外部看待系统,并从用户的角度描述其行为。

0
用例是系统分析中使用的一种方法,用于识别、澄清和组织系统需求。用例由一组可能的系统和用户在特定环境下相互作用的序列以及与特定目标相关联的元素(例如类和接口)组成。它由一组元素组成,这些元素可以以超过单独元素总和的方式一起使用。用例应包含对用户具有重要意义的所有系统活动。用例可以被认为是与特定目标相关的可能场景的集合,事实上,有时将用例和目标视为同义词。
用例(或一组用例)具有以下特点:
- 组织功能需求 - 模拟系统/参与者(用户)交互的目标 - 记录从触发事件到目标的路径(称为场景) - 描述一个主要事件流(也称为基本行动课程),以及可能的其他事件流(也称为替代行动课程) - 是多层的,因此一个用例可以使用另一个用例的功能。

用例可以在软件开发的多个阶段中使用,例如计划系统需求、验证设计、测试软件以及为在线帮助和用户手册创建大纲。


2
这并没有回答在干净架构的上下文中使用案例是什么。 - officer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接