Construtores factory e const
Armazene em cache, retorne subtipos ou crie objetos em tempo de compilação.
Construtores factory e const é 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.
O que é um construtor fábrica
Um construtor fábrica se parece com um construtor normal, mas você controla o que ele retorna; portanto, ele não precisa criar um objeto completamente novo todas as vezes.
class Logger {
factory Logger() => _shared;
}Uma fábrica pode retornar um objeto armazenado em cache
Como retorna um objeto em vez de sempre criar um novo, uma fábrica pode devolver uma instância armazenada em cache, algo perfeito para instâncias únicas ou conjuntos de objetos.
class Logger {
static final _it = Logger._();
Logger._();
factory Logger() => _it;
}Uma fábrica pode retornar um subtipo
Uma fábrica pode retornar qualquer objeto que tenha o tipo correto, inclusive uma subclasse, permitindo escolher a classe concreta durante a execução.
factory Shape(String k) =>
k == "box" ? Box() : Dot();Uma fábrica deve retornar
Ao contrário de um construtor normal, uma fábrica tem um corpo que deve retornar uma instância; ela nunca define campos diretamente com this.
factory User.fromJson(Map j) {
return User(j["name"]);
}Uma fábrica comum para análise
O padrão de fábrica é excelente para analisar dados, como ao criar um objeto a partir de um mapa. A convenção fromJson é muito comum em Dart e Flutter.
factory User.fromJson(Map<String, dynamic> j) =>
User(j["name"]);O que é um construtor constante
Um construtor constante permite criar objetos constantes em tempo de compilação, cujos campos são todos finais e conhecidos antecipadamente.
class Point {
final int x, y;
const Point(this.x, this.y);
}Criando instâncias constantes
Chame-o com a palavra-chave de constante para criar um objeto imutável. Dois objetos constantes com valores iguais são exatamente a mesma instância.
const a = Point(1, 2);
const b = Point(1, 2);
print(identical(a, b)); // trueRegras para construtores constantes
Todos os campos devem ser finais e o corpo do construtor deve estar vazio. Essas regras permitem que Dart congele o objeto em tempo de compilação.
class Color {
final int v;
const Color(this.v);
}Constante economiza memória
Objetos constantes idênticos são canonicalizados em uma única instância compartilhada, portanto reutilizá-los não custa memória adicional.
const reds = [Color(255), Color(255)];fábrica versus constante em resumo
Escolha fábrica quando precisar decidir o que retornar durante a execução; escolha constante quando quiser valores imutáveis definidos em tempo de compilação.
Combinando ideias
Uma classe pode oferecer um construtor normal, uma fábrica para análise de dados e um construtor constante para valores fixos, atendendo a toda necessidade de criação.
Verificação rápida
Verificação rápida sobre construtores fábrica.
Recapitulação: fábrica e constante
Você aprendeu que os construtores fábrica controlam o que retornam, enquanto os construtores constantes criam objetos imutáveis compartilhados em tempo de compilação. Excelente trabalho! 🎉
Perguntas Frequentes
A aula “Construtores factory e const” é grátis?
Sim — o texto completo de “Construtores factory e const” é 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 “Construtores factory e const”?
Armazene em cache, retorne subtipos ou crie objetos em tempo de compilação. 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 “Construtores factory e const”?
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
- Construtores padrão e parametrizados
- Construtores nomeados para uma intenção clara
- Listas de inicialização e redirecionamento
- Construtores factory e const