Porque ela foi declara na classe parceiro comercial como privada? Poderia, por exemplo, dentro do método autenticar. return new AutenticacaoHelper().Autenticar(Senha, senha);
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!
Porque ela foi declara na classe parceiro comercial como privada? Poderia, por exemplo, dentro do método autenticar. return new AutenticacaoHelper().Autenticar(Senha, senha);
Olá Diego, tudo certo?
Para isso acontecer, esse método deveria ser estático. Mas aí poderia ter problemas, pois poderia haver algum conflito em relação a dois usuários tentarem fazer a verificação de senhas com um intervalo pequeno de tempo. Se a verificação do primeiro usuário retornar false e a do segundo retornar true, a resposta poderia chegar como true para o primeiro usuário.
Então, o motivo deste campo privado é isolar a verificação para cada usuário. Com isso, o compilador instanciará um objeto novo para cada vez que a classe for chamada. Então, apenas a própria classe poderá alterar o estado deste objeto.
Espero ter ajudado!
Segue o código da minha dúvida.
public class ParceiroComercial : IAutenticavel
{
private AutenticacaoHelper _autenticacaoHelper = new AutenticacaoHelper();
public string Senha { get; set; }
public bool Autenticar(string senha)
{
return _autenticacaoHelper.CompararSenhas(Senha, senha);
}
public bool AutenticarDuvida(string senha)
{
return new AutenticacaoHelper().CompararSenhas(Senha, senha);
}
}ou seja, se eu escreve o código conforme o método "AutenticarDuvida" eu tenho problema de concorrência ?