Restrições on e ordem dos mixins
Restrinja e empilhe mixins corretamente.
Restrições on e ordem dos mixins é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Dart Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Dart Academy inclui 4 aulas no total.
Mixins com requisitos
Às vezes, um mixin só faz sentido em determinadas classes. Dart permite definir essa regra com uma restrição on, para que o uso incorreto seja identificado logo no início. 🔒
A palavra-chave on
Adicionar on SomeType restringe onde um mixin pode ser aplicado. Somente classes que estendem ou implementam esse tipo podem usá-lo.
mixin Walker on Animal {
void walk() => print('Walking');
}Por que restringir um mixin
Uma restrição garante que o mixin possa chamar com segurança os membros do tipo base. O tipo especificado após on fica disponível dentro dos métodos do mixin.
mixin Walker on Animal {
void move() => breathe();
}Verificado em tempo de compilação
Tente incorporar Walker a uma classe que não seja um Animal, e Dart recusará compilar o código. A restrição protege você antes da execução.
Chamando super em mixins
Um mixin com restrição pode chamar super nos métodos do tipo base. Assim, ele pode envolver ou ampliar um comportamento que sabe que existe.
mixin Logged on Animal {
@override
void speak() { print('log'); super.speak(); }
}A ordem é importante
Quando você lista vários mixins, Dart os aplica da esquerda para a direita. Cada um é colocado sobre o anterior, formando uma cadeia linear.
class C extends Base with A, B {}
// order: Base, then A, then BLinearização
Dart transforma a classe e seus mixins em uma única sequência ordenada chamada linearização. Essa ordem decide qual método vence quando há conflito de nomes.
O último mixin vence
Se dois mixins definirem o mesmo método, aquele listado por último terá prioridade. Reordene a lista with e a versão vencedora mudará.
class C with A, B {}
// B's version overrides A'ssuper percorre a cadeia
Dentro de um mixin, super aponta para o próximo membro na cadeia linearizada, não para a classe original. É assim que mixins empilhados cooperam.
Empilhando comportamentos
Encadeando chamadas a super, vários mixins podem adicionar uma etapa ao redor de um mesmo método. Você cria um comportamento em camadas, como um middleware ao redor de uma ação central.
A ordem como ferramenta de design
Escolha a ordem dos mixins deliberadamente, pois ela controla as sobrescritas e o fluxo de super. Trate a lista with como uma sequência significativa, não como algo aleatório.
Verificação rápida
Dois mixins definem o mesmo método. Qual deles é executado?
Recapitulação
Você restringiu mixins com on, aprendeu que a ordem vai da esquerda para a direita e viu como a linearização e super decidem qual método vence. 🎯
Perguntas Frequentes
A aula “Restrições on e ordem dos mixins” é grátis?
Sim — o texto completo de “Restrições on e ordem dos mixins” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Dart Academy, atualize para CoddyKit PRO. O curso de Dart Academy inclui 4 aulas no total.
O que vou aprender em “Restrições on e ordem dos mixins”?
Restrinja e empilhe mixins corretamente. Você pratica Dart Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Dart Academy?
Nenhuma experiência prévia é necessária. Dart Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Restrições on e ordem dos mixins”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Dart Academy?
Sim. Cada aula de Dart Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- extends e sobrescrita de métodos
- Chamando super e encadeando construtores
- Mixins com a palavra-chave with
- Restrições on e ordem dos mixins