Restricciones on y orden de los mixins
Restringir y apilar mixins correctamente.
Restricciones on y orden de los mixins es una lección gratuita de Dart Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Dart Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Dart Academy incluye 4 lecciones en total.
Mixins con requisitos
A veces un mixin solo tiene sentido en determinadas clases. Dart permite establecer esa regla con una restricción on, de modo que el uso incorrecto se detecta desde el principio. 🔒
La palabra clave on
Añadir on SomeType restringe dónde se puede aplicar un mixin. Solo pueden usarlo las clases que extiendan o implementen ese tipo.
mixin Walker on Animal {
void walk() => print('Walking');
}Por qué restringir un mixin
Una restricción garantiza que el mixin pueda llamar de forma segura a los miembros del tipo base. El tipo indicado por on está disponible dentro de los métodos del mixin.
mixin Walker on Animal {
void move() => breathe();
}Se aplica en tiempo de compilación
Si intenta incorporar Walker a una clase que no es un Animal, Dart se niega a compilar. La restricción le protege antes del tiempo de ejecución.
Llamar a super en mixins
Un mixin restringido puede llamar a super en los métodos del tipo base. Así puede envolver o ampliar un comportamiento que sabe que debe existir.
mixin Logged on Animal {
@override
void speak() { print('log'); super.speak(); }
}El orden importa
Cuando enumera varios mixins, Dart los aplica de izquierda a derecha. Cada uno se coloca sobre el anterior para formar una cadena lineal.
class C extends Base with A, B {}
// order: Base, then A, then BLinealización
Dart aplana la clase y sus mixins en una única secuencia ordenada llamada linealización. Ese orden determina qué método prevalece cuando hay nombres en conflicto.
Gana el último mixin
Si dos mixins definen el mismo método, el que aparece último tiene prioridad. Cambie el orden de la lista with y cambiará la versión que prevalece.
class C with A, B {}
// B's version overrides A'ssuper recorre la cadena
Dentro de un mixin, super apunta al siguiente miembro de la cadena linealizada, no a la clase original. Así cooperan los mixins apilados.
Apilar comportamientos
Al encadenar llamadas a super, varios mixins pueden añadir cada uno un paso alrededor de un mismo método. Así crea un comportamiento por capas, como un middleware alrededor de una acción principal.
El orden como herramienta de diseño
Elija deliberadamente el orden de los mixins, ya que controla los overrides y el flujo de super. Considere la lista with como una secuencia significativa, no como algo aleatorio.
Comprobación rápida
Dos mixins definen el mismo método. ¿Cuál se ejecuta?
Repaso
Restringió los mixins con on, aprendió que el orden va de izquierda a derecha y vio cómo la linealización y super determinan qué método prevalece. 🎯
Preguntas frecuentes
¿La lección «Restricciones on y orden de los mixins» es gratis?
Sí — el texto completo de «Restricciones on y orden de los mixins» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Dart Academy, actualiza a CoddyKit PRO. El curso de Dart Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Restricciones on y orden de los mixins»?
Restringir y apilar mixins correctamente. Practicas Dart Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Dart Academy?
No se requiere experiencia previa. Dart Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Restricciones on y orden de los mixins»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Dart Academy?
Sí. Cada lección de Dart Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- extends y sobrescritura de métodos
- Llamar a super y encadenar constructores
- Mixins con la palabra clave with
- Restricciones on y orden de los mixins