Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services 服务设计:我应该把验证代码放在哪里?_Web Services_Design Patterns_Soa - Fatal编程技术网

Web services 服务设计:我应该把验证代码放在哪里?

Web services 服务设计:我应该把验证代码放在哪里?,web-services,design-patterns,soa,Web Services,Design Patterns,Soa,我对服务的概念有点困惑 假设我想创建一个新用户。 现在,我正在检查Model(project.Web解决方案)和UserServices(project.Services解决方案)中的所有字段是否都是非空的。但是为了验证电子邮件地址,我必须创建一个新函数。 我应该在project.Services(比如GeneralValidation.cs)中创建该类并使用它,还是应该将其与服务分离并创建一个新项目 直到现在,我还没有为存储库和服务创建两个解决方案。我只有一个用于测试的解决方案,另一个用于pr

我对服务的概念有点困惑

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

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

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

如果有人能给我解释一下,我将不胜感激。我已经读过博客文章,在stackoverflow中搜索过类似的问题,但我不能确定自己是否真的理解了它


谢谢

服务和存储库是领域驱动设计中的“一流公民”,所以我不明白您为什么要将它们放在单独的项目中

对于您的特定场景,为什么不创建一个具有方法“CreateUser”的“UserService”,例如,该方法如下所示:

public static class UserService
{
    public static CreateUser( User u )
    {
         var userRepository = RepositoryFactory.CreateUserRepository();

         userRepository.Save (u);

         SendActivationMailForUser(u);
    }

    private static void SendActivationMailForUser( User user )
    {
         ....
    }
}

有关服务的更多信息,请参见

让自己成为一个更好的标题。“设计模式”没有传达任何关于您所问问题的信息。谢谢,现在我在同一个解决方案中提供了存储库和服务。你推荐给我的那篇文章很好,再次感谢。你能回答吗?