Я копаю в том, как структурировать проекты, и поэтому я наткнулся на архитектуру лука. Насколько я понимаю, это скорее архитектура с центром в центре, а не тип базы данных.Зачем выставлять сервис вместо репозитория в архитектуре лука?
Я ищу некоторых GitHub проектов для изучения и узнать больше об архитектуре, так что я нашел один https://github.com/chetanvihite/OnionArchitecture.Sample
Я с трудом понимание времени:
namespace Domain.Interfaces
{
public interface IUserRepository
{
IEnumerable<User> GetUsers();
}
}
namespace Services.Interfaces
{
public interface IUserService
{
IEnumerable<User> GetUsers();
}
}
namespace Services
{
public class UserService : IUserService
{
private readonly IUserRepository _repository;
public UserService(IUserRepository repository)
{
_repository = repository;
}
public IEnumerable<User> GetUsers()
{
return _repository.GetUsers();
}
}
}
Как он использует это путем инъекции конструктора.
private readonly IUserService _service;
public HomeController(IUserService service)
{
_service = service;
}
Вы всегда разоблачить такую услугу, как
IUserService
в приложение, которое потребляет его? Но я заметил,IUserRepository
аналогичен методуIUserService
?Если вы говорите, что касается инфраструктуры, означает ли это или включает в себя базу данных? Или не обязательно? Если нет, то каковы примеры проблем инфраструктуры?
- Есть ли у вас рекомендации относительно бесплатных проектов/проектов github, которые я могу загрузить, чтобы узнать или изучить дальнейшую архитектуру лука? Я лучше понимаю на примерах
P.S. Поскольку я изучаю архитектуру лука, это всегда, если не всегда, по крайней мере, упоминание о DDD. Так что я думаю, что я буду учиться DDD также :)
Очень хорошая статья о различных видах услуг в DDD, с некоторым кодом: http://gorodinski.com/blog/2012/04/14/services-in -domain-driven-design-ddd/ – guillaume31