【发布时间】:2011-01-01 15:56:55
【问题描述】:
我目前正在从事一个项目,其中我有一个 BankAccount 实体用于其他一些实体。
每个银行账户作为对银行实体、帐号和可选的 IBAN 的引用。
既然可以验证 IBAN,我如何确保为帐户设置 IBAN 时有效。什么是干净的架构方法?我目前有一个域层,没有任何其他层的引用,我喜欢这种干净的方法(我受到 Eric Evans DDD 的启发)。幸运的是,可以在不访问任何外部系统的情况下执行 IBAN 验证,所以在这种情况下,我可以有类似
puclic class BankAccount
{
public string Iban
{
set { // validation logic here }
}
}
但现在我在想,如果 IBAN 验证需要 SQL 服务器检查或外部 dll,我会使用什么方法。我将如何实施。我是否会创建一个传递给服务的 IBAN 值对象,该对象决定 IBAN 是否有效,然后将其设置为 BankAccount 实体? 或者我会创建一个允许实例化 IBAN 并在之前执行验证的工厂?
感谢您的帮助!
【问题讨论】:
-
我想你最后回答了你自己的问题。 Evans 领域驱动设计中的 SPECIFICATION 模式浮现在脑海中。
标签: architecture domain-driven-design design-patterns