Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

05-Interfaces e Duck type- atividade 3.

Nesta atividade a validacao da resposta esta com probemas, so existe uma alternativa correta porem ao selecionar uma resposta o sistema nao confirmou a resposta, quando selecionado duas respostas um dela correta fica verde a segunda escolha fica vermelho ao mesmo tempo.Isso esta ocorrendo na aula 05-Interfaces e Duck type- atividade 3.

2 respostas
solução!

Oi Marcelo, tudo bem?

Na verdade, existem duas alternativas corretas! Vamos entender o motivo?

Pergunta: Ao criarmos o Sistema de Autenticação do bytebank precisamos autenticar todos usuários que são Gerentes, Diretores e Funcionários. Além disso, os Clientes também precisam ser autenticados pelo mesmo sistema. Para isso criamos um método chamado autenticardentro de todas essas classes.

Como é possível que o Sistema de autenticação consiga receber diversos tipos de objetos por parâmetro e mesmo assim continuar funcionando?

A) Isso só é possível porque o JS não é uma linguagem fortemente tipada e por isso não depende apenas dos tipos pré definidos mas sim se eles possuem ou não as propriedades que queremos utilizar.

Isso é verdade! A função login da classe Authenticate recebe um objeto como parâmetro, mas não importa qual objeto for, o que importa é se ele terá ou não o método authenticate(), que iremos realizar a autenticação de fato.

B) Isso só é possível porque estamos sempre herdando todos os objetos a partir de uma classe comum e por isso todos tem o mesmo tipo base.

Na verdade não é por isso. Veja que a classe Authenticate não herda de nenhuma outra, o JS é fracamente tipado então não importa o objeto que ele receber.

C) Através do polimorfimo o JS consegue tratar diferentes objetos de maneiras semelhantes e por isso conseguimos autenticar diferentes tipos de objetos em nosso sistema.

Isso é verdade! O polimorfismo é a habilidade de tratar objetos diferentes como semelhantes, economizando muitas verificações de instâncias. Não precisamos ficar fazendo verificações do tipo: autenticavel é uma instância de Cliente, ou Gerente, ou Diretor. Com o polimorfismo, só interessa que o objeto tenha o método autenticar.

D) Como cada objeto pode ser de um tipo diferente precisamos criar condicionais explícitas para cada um desses tipos assim garantimos que o código não dará nenhum erro.

Isso é falso! Graças ao polimorfismo não precisamos ficar criando condicionais, ao tratarmos diferentes objetos de forma igual conseguimos economizar toda essa lógica condicional e deixar nosso código mais simples.

Espero ter ajudado :D Bons estudos!

Olá Giovanna, agradeço pela informação e sua explicação ficou claro sim na questão teórica, mas acredito que por ser iniciante nao soube me expressar bem sobre a dúvida ocorrida durante a resolução do exercício.Eu entendi que poderia avançar usando o botão Próxima atividade apenas quando as duas resposta fosse verdadeira.Na ocasião eu selecionei a opção C e D sendo esta última errada e cliquei na próxima atividade só para ver se avançava, mesmo estando uma resposta errada, neste caso sairia sem saber qual seria a segunda resposta correta.Mas tranquilo agora entendi que será exibido a resposta correta e mesmo se for errada consigo avança para próxima atividade.Mais uma vez obrigado pela atenção