我的项目中有两个类(使用 ASP.NET MVC):AuthenticationService 和 ProfileService。当新用户在我的站点注册时,Authentication 控制器的 Register 操作调用 IAuthenticationService 中的 Register 方法,该方法根据接口所指的任何具体身份验证模块为用户创建身份验证记录(注入到控制器的构造函数中)。作为注册过程的一部分,将为用户创建配置文件记录,该配置文件记录是通过在注入的 IProfileService 上调用 CreateProfile(User) 来创建的。
目前控制器正在调用这两个服务,但我喜欢我的控制器执行尽可能少的业务逻辑的想法。我想知道除了让身份验证服务知道配置文件服务之外是否还有其他选择,这反过来又需要 IAuthenticationService 的任何未来实现知道调用 CreateProfile?我不禁觉得上面写满了代码气味。
另一种可能性是让第三个服务 {I,}RegistrationService 负责逻辑。
处理这种情况的推荐或首选方法是什么?谢谢