我有几个关于洋葱架构和 MVC 的问题。
1)领域服务和应用服务有什么区别?
2) Service/Repository/UnitOfWork 模式如何适应这种架构?
3) 你认为这种架构对于 MVC 应用程序来说是一个好的计划吗?
对此的任何想法将不胜感激。
我有几个关于洋葱架构和 MVC 的问题。
1)领域服务和应用服务有什么区别?
2) Service/Repository/UnitOfWork 模式如何适应这种架构?
3) 你认为这种架构对于 MVC 应用程序来说是一个好的计划吗?
对此的任何想法将不胜感激。
DomainService 是您在域内使用的服务。ApplicationService 是您在域中向其他层公开的服务。
什么服务?存储库通常定义为域模型中的接口。您的域模型仅适用于接口。具体存储库是通过依赖注入加载的,位于基础架构或持久层中。
例如
public class RegistrationService : IRegistrationService
{
private IUserRepository mUserRepository;
public RegistrationService(IUserRepository userRepository)
{
mUserRepository = userRepository;
}
public void Register(string name, string password)
{
var user = new User(name, password);
mUserRepository.Add(user);
}
}
(希望语法正确)
此示例中的 RegistrationService 是一个 DomainService。另一方面,WCF 服务是 ApplicationService。
它们之间的主要区别在于域服务拥有域逻辑,而应用程序服务则没有
工作单元提供了将更改保存到存储(无论此存储是什么)的能力。IUnitOfWork 接口有一个保存方法,通常称为 Complete,每个具体存储库都作为属性。
是的!它提供了更好的可维护性,因为所有代码都依赖于层或中心。它提供了更好的可测试性,因为可以为单独的层创建单元测试,而不会影响应用程序的其他模块