2

我正在构建一个新的 SaaS 应用程序并希望遵循 DDD 原则。

我正处于草拟想法的阶段,我遇到了这个问题。我希望人们能给我一些想法。我认为这不一定是对或错。但我很想听听你的想法……

本质上,我不确定 Billing 属于哪里以及如何最好地实施它。

我不知道用户是否应该知道计费界面。用户实体是否有责任进行计费?

我认为用户实体知道他们是否有订阅是公平的,但不知道它是如何实现的。

在这个阶段,我认为领域层将指定 BillingInterace,而实现将存在于基础设施层中。(我将使用 Stripe 开始)

您是否会创建计费服务并传入用户实体以在条带上创建客户帐户并执行计费功能?

或者您是否会编写一个特征,该特征会被放到用户实体上,以便用户可以自己计费($user->charge() - 或其他)。

希望这是有道理的。我只是想提出一些想法,因为我在网上找不到任何像样的指导。

谢谢!!李

4

1 回答 1

3

用户实体是否有责任进行计费?

我不这么认为。

在这个阶段,我认为领域层将指定 BillingInterace,而实现将存在于基础设施层中。

计费是域(业务)的一部分吗?如果是,那么它应该在那里。

也许计费可以是聚合根域服务。看看这篇文章,其中PurchaseOrder(聚合)可能是您的帐单。在,这解释了域服务。

于 2016-01-19T11:11:40.690 回答