ddd 中的应用层可以有模型吗?
更明确地说,我的credential
系统中有一个与我的域层之外的身份验证过程相关的实体,那么这个实体将在哪里?我是领域驱动设计的新手。
ddd 中的应用层可以有模型吗?
更明确地说,我的credential
系统中有一个与我的域层之外的身份验证过程相关的实体,那么这个实体将在哪里?我是领域驱动设计的新手。
应用层可以使用自己的数据表示。如果将其连接到用户界面,应用层将不得不将域对象转换为可查看的数据。
但我不会称它为“模型”,除非是在“视图模型”的意义上。
没有更多细节,很难说更有用的东西,所以我将尝试通过示例回答您的集成问题。
查看Vernon 的示例应用程序,您可以将身份验证服务与您的消费应用程序隔离开来。Vernon 为此建模了三个独立的 Java 应用程序。
现在有提供所有身份验证的 IdentityAccess 服务。在那里,您可以创建Tenant
实体。然后是协作应用程序(论坛等),它使用自己的Tenant
.
因此,客户端应用程序获取TenantId
并创建自己的Tenant
对象以将论坛线程与租户相关联。Tenant
s 不会在此应用程序中更改或保留,仅使用。
你的观点可能更简单。如果您有一个实体(在您的域中)和它之外的一些身份验证逻辑,请让“身份验证器”实现域的专用接口,并在您确实需要时Credential
将其注入到域对象中。(这就是端口和适配器方法:双方可以指定接口并等待具体实现;另一方实现接口并重新注入对象。)
我想您实际上不必从您的域中访问身份验证逻辑,但我们必须查看更多代码来判断这一点。
Vernon 使用域内的 AuthenticationService来处理错误的登录详细信息。