干净的架构:用例混合

4
我正在尝试理解干净架构的工作原理。在上一个项目中,我有一个用户,他可以添加付款卡并购买订阅(例如用例),但当他是新用户时,添加和购买被集成为一步。

用例示例

根据已读内容,它应该有两个“交互器”,一个是“添加付款”和“购买”,但是...当用户是新用户时,他在注册过程中添加付款方式并在一步中进行支付。

我认为我应该有一个“添加和支付”的用例,但它将重复代码并破坏范例。我看到了以下选项:

  1. 创建一个带有重复代码的第三个用例
  2. 从控制器合并
  3. 创建一个调用其他两个用例的用例

你是如何解决这个问题的?

1个回答

3
我通常会创建一个基本用例,它调用其他两个用例。对于这个基本用例,我定义了一个新的请求模型,其中包含了其他用例的请求模型。响应模型也是一样。但有时候请求或响应模型有共同点,我会创建更紧凑的模型。
我认为基本用例最适合用例 UML 模型中的 包含关系
            +-----------+
            | AddAndPay |  
            +-----------+
             |         |
             V         V
         +-----+    +-----+
         | Add |    | Pay | 
         +-----+    +-----+

“AddAndPay”用例还处理其中一个用例的失败情况。例如,如果支付失败,您可能不想添加付款卡。也许您必须调用“RemovePaymentCard”用例,或者您的事务边界是“AddAndPay”用例。

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