c#在域驱动设计中放置业务规则
发布时间:2020-12-16 01:59:03 所属栏目:百科 来源:网络整理
导读:我正在学习域驱动设计,我对我应该制定业务规则的地方有点困惑. 假设我有一个名为Member的聚合根,它保存对实体密码的引用. 密码看起来像这样: public class Password{ public string Hash { get; private set; } public string Salt { get; private set; } p
我正在学习域驱动设计,我对我应该制定业务规则的地方有点困惑.
假设我有一个名为Member的聚合根,它保存对实体密码的引用. 密码看起来像这样: public class Password { public string Hash { get; private set; } public string Salt { get; private set; } public DateTime ExpirationDate { get; private set; } public void GenerateNewPassword(string plainPassword) { //Some logic here } } 我还有一个名为Settings的设置对象.设置从设置存储库加载. public bool CheckPasswordRequirements(string password) { //Some logic here } 所以我的问题是,它是保存此密码规则的最佳位置,还是应该将此方法移至Password类,因为密码对象负责检查给定的普通密码是否符合要求(然后我还应将设置存储库放在密码实体中)或者是否应该直接在创建成员对象的服务中进行此检查? 解决方法
没有明确的答案可以从业务逻辑中得出.两种方法都同样有效.我会采取更务实的观点:
>如果您的密码检查算法很简单,那么我会将CheckPasswordRequirements方法直接放在Password类中,并在c’tor中调用它. static class PasswordExtension { public static bool CheckPasswordRequirements(this string password) { //Some logic here } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |