我在我的学习项目中使用 ddd。存储库使用域类并在内部将它们映射到持久性类。在基础存储库中,我有方法
Add(domainClass)
,在子类 UserRepository 中,我需要一个方法 Add(domainClass, passwordHash, passwordSalt)
来注册新用户,并且我在domainClass中没有这两个字段,因为我没有任何域逻辑需要他们。
你不需要写你正在使用哪种语言,但假设像Java或C#这样的主流语言,如果你在基类(或接口)中定义了一个方法,那么你不能在派生类或实现类中更改它.
一种选择是使额外参数成为对象的一部分(我认为是
domainClass
?)。
另一种选择是通过构造函数传递额外的参数。