Por quê do extrair uma interface do DataService?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Por quê do extrair uma interface do DataService?
Olá, Murilo
O uso da interface é necessário para usarmos o sistema de injeção de dependência do ASP.NET Core MVC.
No arquivo Startup.cs, configuramos o mapeamento entre a interface IDataService e o tipo concreto (classe) DataService. Assim, sempre que um objeto precisar ser construído automaticamente pelo ASP.NET Core MVC, e o construtor desse objeto contiver a interface IDataService, o framework saberá qual instância de classe ele precisará criar (DataService) para fornecer a esse novo objeto.
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
.
.
.
services.AddTransient<IDataService, DataService>();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory,
IServiceProvider serviceProvider)
{
.
.
.
IDataService dataService = serviceProvider
.GetService<IDataService>();
.
.
.
}