Constructores factory y const
Almacenar en caché, devolver subtipos o crear objetos en tiempo de compilación.
Constructores factory y const 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.
Qué es un constructor factory
Un constructor factory parece uno normal, pero usted controla lo que devuelve; por eso no tiene que crear un objeto completamente nuevo cada vez.
class Logger {
factory Logger() => _shared;
}factory puede devolver un objeto almacenado en caché
Como devuelve un objeto en lugar de crearlo siempre, un constructor factory puede entregar una instancia cached, algo perfecto para singletones o grupos de objetos reutilizables.
class Logger {
static final _it = Logger._();
Logger._();
factory Logger() => _it;
}factory puede devolver un subtipo
Un constructor factory puede devolver cualquier objeto que sea del tipo correcto, incluido un subclass, lo que permite elegir la clase concreta en tiempo de ejecución.
factory Shape(String k) =>
k == "box" ? Box() : Dot();factory debe devolver un valor
A diferencia de un constructor normal, un factory tiene un cuerpo que debe return una instancia; nunca establece campos directamente con this.
factory User.fromJson(Map j) {
return User(j["name"]);
}Un factory habitual para analizar datos
El patrón factory resulta ideal para analizar datos, como al crear un objeto a partir de un mapa. La convención fromJson es muy común en Dart y Flutter.
factory User.fromJson(Map<String, dynamic> j) =>
User(j["name"]);Qué es un constructor const
Un constructor const permite crear objetos constantes en tiempo de compilación cuyos campos son todos final y se conocen de antemano.
class Point {
final int x, y;
const Point(this.x, this.y);
}Crear instancias const
Llámelo con la palabra clave const para crear un objeto inmutable. Dos objetos const con valores iguales son exactamente la misma instancia.
const a = Point(1, 2);
const b = Point(1, 2);
print(identical(a, b)); // trueReglas para los constructores const
Todos los campos deben ser final y el cuerpo del constructor debe estar vacío. Estas reglas permiten que Dart congele el objeto en tiempo de compilación.
class Color {
final int v;
const Color(this.v);
}const ahorra memoria
Los objetos const idénticos se canonicalized en una única instancia compartida, por lo que reutilizarlos no consume memoria adicional.
const reds = [Color(255), Color(255)];factory frente a const de un vistazo
Elija factory cuando necesite decidir qué devolver en tiempo de ejecución; elija const cuando quiera valores inmutables determinados en tiempo de compilación.
Combinar conceptos
Una clase puede ofrecer un constructor normal, un factory para analizar datos y uno const para valores fijos, cubriendo cualquier necesidad de creation.
Comprobación rápida
Comprobación rápida sobre los constructores factory.
Resumen: factory y const
Ha aprendido que los constructores factory controlan lo que devuelven, mientras que los constructores const crean objetos inmutables y compartidos determinados en tiempo de compilación. ¡Excelente trabajo! 🎉
Preguntas frecuentes
¿La lección «Constructores factory y const» es gratis?
Sí — el texto completo de «Constructores factory y const» 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 «Constructores factory y const»?
Almacenar en caché, devolver subtipos o crear objetos en tiempo de compilación. 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 «Constructores factory y const»?
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
- Constructores predeterminados y parametrizados
- Constructores con nombre para una intención clara
- Listas de inicialización y redirección
- Constructores factory y const