JavaScriptPOObasico

Mixin pattern

Em vez de criar uma árvore de herança complexa, use mixins para reutilizar comportamentos em classes que não têm relação de pai-filho. Por exemplo, frameworks como jQuery ou bibliotecas de eventos aplicam mixins para adicionar funcionalidades a objetos de forma flexível. Com Object.assign você 'cola' métodos de um objeto literal no prototype da classe alvo.

O PROBLEMA

Crie mixins Nadador e Corredor. Aplique ambos em Triatleta usando Object.assign no prototype.

EXEMPLO

const t = new Triatleta("Ana");
t.nadar() → "Ana está nadando"
t.correr() → "Ana está correndo"

SOBRE O CONCEITO

Um mixin é um objeto literal com métodos que podem ser 'emprestados' para outras classes. Usando Object.assign(Classe.prototype, mixin), você copia as propriedades do mixin para o prototype da classe, fazendo com que todas as instâncias herdem esses métodos. Erro comum é confundir mixin com herança: o mixin não estabelece uma relação 'é um' (herança), apenas compõe comportamentos. Outro erro é a ordem dos Object.assign: se vários mixins tiverem métodos com o mesmo nome, o último vence. Como extends é proibido, você não pode usar herança; a composição com mixins resolve isso.

RESOLUÇÃO

Mais exercícios de POO

JSP021 · AvançadoClasse LinkedListJSP005 · BásicoContador de instânciasJSP008 · Básicoinstanceof e verificação de tipoJSP009 · BásicoClasse abstrata simulada
Ver todos os exercícios de JavaScript