【发布时间】:2014-07-03 16:42:02
【问题描述】:
我目前正在构建一个 DDD 应用程序来验证贷款。每笔贷款都有各种验证检查,在批准贷款之前必须执行这些检查。验证检查因贷款而异,大部分需要外部(基础设施)服务才能完成。
鉴于此,我们决定实施这些检查的最佳方式是为每种贷款类型创建一个配置文件,其中将列出特定规则和可以执行规则检查的相应验证器服务。此外,某些规则需要传递特定的参数。例如信用评分检查,会有一个阈值(例如必须超过 600)。为此,我们认为我们应该只传递一个字符串字典对象,称为验证标准。除非有人有更优雅的方式来做到这一点?
现在我的 Loan 实体有一个 validate 方法,它接受要检查的规则列表。我的问题是,在运行时从配置文件中解析服务引用的最佳方法是什么?将服务工厂传递给 Validate() 方法,该方法接受字符串验证器名称?
我在应用程序的其余部分中使用 Unity for DI,但无法找出在运行时动态执行此操作的最佳方法。
任何见解将不胜感激!
【问题讨论】:
-
您如何确定贷款的类型?每种类型的贷款都是
Loan的子类型,Loan是否具有枚举类型LoanType的Type属性,或者您定义了谁的贷款类型? -
贷款类型由贷方决定。贷方为批准的贷款制定规则。我们公司是对进来的贷款进行验证的中间人。因此,我们想要一个可以轻松与新贷方合作的系统以及他们要执行的特定规则列表。贷款类型在这里用的确实是错误的术语。抱歉,我只是想简化问题。
标签: c# service dependency-injection domain-driven-design inversion-of-control