我正在构建一个新的 SaaS 应用程序,并且希望遵循 DDD 原则。
我正处于草拟想法的阶段,我遇到了这个问题。我希望人们能给我一些想法。我认为这没有必然的对或错。但我很想听听你的想法......
基本上我不确定计费属于哪里以及如何最好地实现它。
我不知道用户是否应该了解计费界面。计费是用户实体的责任吗?
我认为用户实体知道他们是否有订阅是公平的,但不知道它是如何实现的。
在这个阶段,我认为域层将指定 BillingInterace,并且实现将位于基础设施层中。 (我将首先使用 Stripe)
您会创建计费服务并传入用户实体以在 stripe 上创建客户帐户并执行计费功能吗?
或者您会编写一个特征,将其放到用户实体上,以便用户可以自己计费($user->charge() - 或其他)。
希望这是有道理的。我只是想提出一些想法,因为我在网上找不到任何关于这些东西的像样的指导。
谢谢!! 李
最佳答案
Is it the user entities responsibility to carry out billing?
我不这么认为。
At this stage Im thinking that the domain layer would specify the BillingInterace, and the implementation would live in the Infrastructure layer.
计费是域(业务)的一部分吗?如果是,那么它应该在那里。
也许计费可以是聚合根或域服务。看看this其中 PurchaseOrder(聚合)可能是您的账单的帖子。并在 this ,这解释了域服务。
关于php - "Billing"属于 DDD php 项目中的哪个位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34874955/