我目前正在处理一个项目,其中有一个银行账户实体用于其他实体。
每个银行账户都参考了一个银行实体,一个账户号码和可选的IBAN。
现在,由于可以验证IBAN,我该如何确保当为账户设置IBAN时它是有效的。什么是清晰的架构方法?我目前有一个域层,没有任何对其他层的引用,我喜欢这种干净的方法(我受到了Eric Evans DDD的启发)。幸运的是,IBAN验证可以在不访问任何外部系统的情况下进行,因此在这种情况下,我可以像下面这样做:
puclic class BankAccount
{
public string Iban
{
set { // validation logic here }
}
}
但是现在我在思考如果IBAN验证需要例如SQL服务器检查或外部dll,我会使用什么方法。我该如何实现呢?我会创建一个IBAN值对象,将其传递给服务,该服务决定IBAN是否有效,并在此之后将其设置为BankAccount实体吗?还是我应该创建一个工厂,允许实例化IBAN并在此之前执行验证呢?
感谢您的帮助!