遵循SRP时,应如何处理验证和保存实体?
最近,我一直在阅读Clean Code和各种有关SOLID的在线文章,而我阅读的内容越多,我感觉自己一无所知。 假设我正在使用ASP.NET MVC 3构建Web应用程序。假设我有一个类似这样UsersController的Create操作: public class UsersController : Controller { public ActionResult Create(CreateUserViewModel viewModel) { } } 在这种操作方法中,如果输入的数据有效,我想将用户保存到数据库中。 现在,根据“单一责任原则”,对象应具有单一责任,并且该责任应由类完全封装。它的所有服务都应严格地与这一责任保持一致。由于验证和保存到数据库是两个单独的职责,我想我应该创建一个单独的类来像这样处理它们: public class UsersController : Controller { private ICreateUserValidator validator; private IUserService service; public UsersController(ICreateUserValidator validator, IUserService service) { this.validator = validator; this.service= service; } public ActionResult Create(CreateUserViewModel viewModel) { ValidationResult …