Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Como eu vejo o Duck Type ...

O Duck Typing é um conceito em programação que se concentra no comportamento de um objeto em vez de sua classe ou tipo. Em outras palavras, se um objeto anda como um pato, nada como um pato e grasna como um pato, então é um pato. Em JavaScript, isso significa que podemos nos concentrar nas propriedades e métodos de um objeto em vez de seu tipo para determinar se ele pode ser usado em um determinado contexto. Um exemplo prático de Duck Typing em JavaScript pode ser visto em um construtor de objetos "Animal". Em vez de definir tipos específicos de animais, podemos definir propriedades e métodos que um animal deve ter para ser considerado um animal. Eis um exemplo:

// Construtor de Animal function Animal() {}

// Métodos do Animal Animal.prototype.sound = function() { console.log("Este animal faz um som"); }; Animal.prototype.move = function() { console.log("Este animal se move"); };

// Construtor de Cachorro function Cachorro() {}

// Protótipo do Cachorro Cachorro.prototype.sound = function() { console.log("O cachorro late"); };

// Construtor de Pato function Pato() {}

// Protótipo do Pato Pato.prototype.sound = function() { console.log("O pato grasna"); }; Pato.prototype.move = function() { console.log("O pato nada"); };

// Função que aceita qualquer Animal como argumento function fazerAnimalFazerAlgumaCoisa(animal) { animal.sound(); animal.move(); }

// Criando um Cachorro e um Pato var cachorro = new Cachorro(); var pato = new Pato();

// Chamando a função com o Cachorro e o Pato fazerAnimalFazerAlgumaCoisa(cachorro); fazerAnimalFazerAlgumaCoisa(pato);

Neste exemplo, temos um construtor de Animal que define os métodos "sound" e "move" que todos os animais devem ter. Em seguida, temos construtores de Cachorro e Pato que definem seus próprios métodos "sound" e "move". Quando chamamos a função "fazerAnimalFazerAlgumaCoisa" com o cachorro e o pato como argumentos, ambos são aceitos porque têm os métodos "sound" e "move" necessários para serem considerados animais. Isso é um exemplo de polimorfismo, onde objetos de diferentes tipos podem ser tratados como se fossem do mesmo tipo, desde que tenham o comportamento necessário.

Talvez seja a maneira mais fácil de visualizar o Duck Type utilizando um constructor e polimorfismo.

1 resposta
solução!

Olá Jefferson, tudo bem?

O Duck Typing é um conceito muito interessante em programação, e em JavaScript ele é bastante utilizado. Como você mencionou, o foco está no comportamento do objeto e não em sua classe ou tipo, o que permite uma maior flexibilidade e reutilização de código.

O exemplo que você trouxe com o construtor de Animal e os construtores de Cachorro e Pato é um ótimo exemplo de como o Duck Typing pode ser aplicado na prática. É possível definir um conjunto de propriedades e métodos que um objeto deve ter para ser considerado de um determinado tipo, e assim garantir que ele possa ser utilizado em um determinado contexto.

Além disso, o polimorfismo é uma técnica muito útil que permite tratar objetos de diferentes tipos como se fossem do mesmo tipo, desde que tenham o comportamento necessário. Isso torna o código mais flexível e reutilizável, já que é possível criar funções que aceitam qualquer objeto que tenha o comportamento necessário, independentemente de sua classe ou tipo.

Bons estudos!

Abraço.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software