我对服务的概念感到有些困惑。
我们假设我想创建一个新用户。 现在,我正在检查Model(project.Web解决方案)和UserServices中的所有字段是否为非空(project.Services解决方案)。但要验证电子邮件地址,我必须创建一个新功能。 我应该在project.Services中创建该类,如GeneralValidation.cs并使用它,还是应该将它与服务分开并创建一个新项目?
到目前为止,我没有为存储库和服务创建两个解决方案。我只有一个用于测试的解决方案,另一个用于project.Web,另一个解决方案,我有一个域文件夹,存储库文件夹和一些业务逻辑类,但在阅读了一些关于设计模式后,我决定拆分此
也许我还不了解服务的含义。对我来说,服务是一个将使用存储库(如用户)的层,服务层是我应该进行验证的地方。如果这是正确的,那就是为什么我不知道在哪里创建电子邮件验证功能,例如。
如果有人能解释我,我真的很感激。我已经阅读了博客文章,并在stackoverflow中搜索类似的问题,但我不能确定我是否真的理解它。
由于
答案 0 :(得分:1)
服务和存储库是域驱动设计中的“一等公民”,所以我不明白你为什么要把它们放在一个单独的项目中?
对于您的特定场景,为什么不创建一个'UserService',它有一个方法'CreateUser',它看起来像这样:
public static class UserService
{
public static CreateUser( User u )
{
var userRepository = RepositoryFactory.CreateUserRepository();
userRepository.Save (u);
SendActivationMailForUser(u);
}
private static void SendActivationMailForUser( User user )
{
....
}
}
可以找到有关服务的更多信息here