【问题标题】:Clean architecture: use case mixing清洁架构:用例混合
【发布时间】:2021-10-16 21:49:02
【问题描述】:

我试图了解干净架构的工作原理,上一个项目我有一个用户,他可以添加支付卡并购买订阅(示例用例),但是当它是新用户时,添加和购买集成为一个步骤

Use case sample

根据已经阅读的内容,它应该有两个“Interactors”,一个“AddPayment”和“Purchase”,但是......我该如何混合: 用户可以分别做,但是当他是新人时,在注册过程中他添加了付款方式并一步完成了收费,

我认为我应该有一个“添加和支付”用例,但它会有重复的代码和破坏的范式,我看到这些选项:

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

你是怎么解决的?

【问题讨论】:

    标签: clean-architecture


    【解决方案1】:

    我通常会制作一个调用其他两个的基本用例。对于这个基本用例,我定义了一个包含其他请求模型的新请求模型。这同样适用于响应模型。但有时请求或响应模型有一些共同点,我会创建更精简的模型。

    我认为基本用例最适合用例 uml 模型的include relationship

                +-----------+
                | AddAndPay |  
                +-----------+
                 |         |
                 V         V
             +-----+    +-----+
             | Add |    | Pay | 
             +-----+    +-----+
    

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

    【讨论】:

      猜你喜欢
      • 2022-05-18
      • 1970-01-01
      • 2017-03-20
      • 2016-08-16
      • 2018-06-15
      • 2016-05-07
      • 2016-09-17
      • 2017-10-03
      • 2020-03-02
      相关资源
      最近更新 更多