我的应用程序分为几个程序集。
MyProject.Infrastructure程序集包含所有域对象,例如Person
和Sale
以及接口存储库,例如IPersonRepository
和ISaleRepository
。
MyProject.Data程序集包含这些存储库的具体实现。
存储库从数据库中提取数据并实例化新的域类。例如,IPersonRepository.GetPersonByNumber(customerNumber)
将从数据源中读取一个客户,创建一个新Person
类,填充它并返回给调用者。
我现在开始看到向我的域类添加一些方法可能有意义的情况,例如Person.UpdateAddress(address)
.
是否可以将此方法Person
作为虚拟方法放在我的类上,然后在我的数据层中创建派生类来覆盖这些方法以提供所需的功能?
我想确保我不会违反任何 DDD 约定。
我知道我也可以选择将这些方法放在存储库中 - 例如IPersonRepository.UpdatePersonAddress(person, address)
。