Só por curiosidade, essa situação que foi explicada usando o pato e o carro recebe o nome de ducktyping, não?
Só por curiosidade, essa situação que foi explicada usando o pato e o carro recebe o nome de ducktyping, não?
Olá Gustavo, tudo bem com você?
Peço desculpas pela demora no retorno.
O Duck Typing por definição diz que “Se anda como um pato e grasna como um pato, então deve ser um pato”, o que quer dizer que o tipo ou a classe de um objeto é menos importante que os métodos que ele define. Em vez disso, é verificado a presença de um determinado método ou atributo. Então supondo uma classe que tenha implementado o método __len__
, que pertence a um str, list ou dict, então, através do conceito de duck typing, essa classe deve ser provavelmente um str, list ou dict, por ter implementado o método __len__
.
Já o modelo apresentado durante a aula, é um padrão de projetos, o Factory Method, nesse padrão de projeto temos um método que será responsável pela criação dos objetos, instanciando as classes conforme os parâmetros informados e criando um objeto a partir dessa referência, assim o usuário não acessa diretamente a classe, recebendo apenas o objeto já construído. Mas, devido as classes FilaPrioritaria
e Fila Normal
implementarem métodos com nomes semelhantes e fazerem operações semelhantes, poderiam sim ser associadas ao conceito de duck typing, pois todas são uma Fila.
Para aprimorar ainda mais o seu aprendizado sobre o padrão de projeto Factory, recomendo a leitura do seguinte artigo, que irá abordar com detalhes o uso deste padrão:
O artigo acima está em Inglês caso tenha dificuldade com o idioma recomendo o uso do tradutor do navegador.
Fico à disposição em caso de dúvidas.
Abraços e bons estudos.