关于领域驱动设计 DDD 的坑与问?



以下是用领域设计的功能,我感觉特别鸡肋。
聚合之间都是关联在一起的,比如用户和登录验证,因为用户需要能够查询,同时也可以通过用户密码登录后反查到用户。

导致大部分聚合依旧时以往的PO,如果做太多的关联,又会导致重建对象的代价特别大,想请教下各位大神,你们的领域是怎么设计的。





BusinessApplication application = applicationFactory.reconstructApplication(serialNo);
BusinessProvider provider = businessProviderFactory.rebuildBusinessProvider(application.getBusinessApplicationHolder().getProviderNo());
//创建系统管理员用户
BusinessSystemUser adminUser = businessSystemUserFactory.createInternalUser(provider.getSerialNo(),provider.getSuperUserObject());
adminUser.getSystemUserHolder().setUserObjectType(provider.getSuperUserObject()); //为用户配置用户对象类别
adminUser.getSystemUserHolder().updateSystemProperties("系统管理员", null); //设置系统管理员
//为用户配置组织机构
Organization organization = organizationFactory.reconstructOrg(provider.getTopOrgSerialNo());
adminUser.getSystemUserHolder().setBusinessOrgProperties(organization.getOrganizationHolder().getSerialNo(), organization.getOrganizationHolder().getOrgName());
adminUser.getSystemUserHolder().InUser();
//创建用户密码验证
UserPwdValidate pwdValidate =businessSystemUserFactory.createPwdValidate(provider.getSerialNo(),loginName);
pwdValidate.getUserPwdValidateHolder().resetPwd(loginPwd); //配置密码
//为用户开通此认证
UserAuthDredge userAuthDredge = new UserAuthDredge(provider.getSerialNo(), adminUser.getSystemUserHolder().getSerialNo());
userAuthDredge.getHolder().setAuthType(AuthTypes.getAuthType(UserPwdValidate.class));
userAuthDredge.getHolder().setValidId(loginName);
//将用户作为该应用系统的管理员
application.appointAdminUser(adminUser.getSystemUserHolder().getSerialNo());
businessApplicationRepository.updateApplication(application);
businessServiceRepository.updateProvider(provider);
businessUserRepository.saveBusinessUser(adminUser);
businessUserRepository.saveUserAuthDredge(userAuthDredge);
businessUserRepository.saveUserPwdValidate(pwdValidate);
posted @ 2022-03-11 21:15  海鸥的沙漠梦  阅读(91)  评论(0)    收藏  举报