服务设计:我应该在哪里放置验证码?

时间:2011-01-26 19:22:01

标签: web-services design-patterns soa

我对服务的概念感到有些困惑。

我们假设我想创建一个新用户。 现在,我正在检查Model(project.Web解决方案)和UserServices中的所有字段是否为非空(project.Services解决方案)。但要验证电子邮件地址,我必须创建一个新功能。 我应该在project.Services中创建该类,如GeneralValidation.cs并使用它,还是应该将它与服务分开并创建一个新项目?

到目前为止,我没有为存储库和服务创建两个解决方案。我只有一个用于测试的解决方案,另一个用于project.Web,另一个解决方案,我有一个域文件夹,存储库文件夹和一些业务逻辑类,但在阅读了一些关于设计模式后,我决定拆分此

也许我还不了解服务的含义。对我来说,服务是一个将使用存储库(如用户)的层,服务层是我应该进行验证的地方。如果这是正确的,那就是为什么我不知道在哪里创建电子邮件验证功能,例如。

如果有人能解释我,我真的很感激。我已经阅读了博客文章,并在stackoverflow中搜索类似的问题,但我不能确定我是否真的理解它。

由于

1 个答案:

答案 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