O Padrão Builder: Simplificando Criação de Objetos Complexos

Ildeberto Vasconcelos
2 min readJan 5, 2024

--

O Padrão Builder é um padrão de design criacional usado para construir objetos passo a passo. Ele permite a criação de objetos com diferentes configurações, ocultando os detalhes de sua construção

Em termos simples, o Padrão Builder separa a construção de um objeto complexo de sua instância final, Usa um construtor para configurar o objeto passo a passo, ocultando a complexidade da criação. Este padrão é útil quando há múltiplos parâmetros opcionais ou quando a criação de um objeto envolve muitos passos.

Vantagens do Padrão Builder:

  • Flexibilidade: Permite a criação de diferentes representações de um objeto complexo.
  • Legibilidade: Torna o código mais legível, pois os passos de construção são claros.
  • Separação de Responsabilidades: Isola o processo de construção do objeto, desse jeito temos um código mais organizado.

Quando usar o Padrão Builder?

O Padrão Builder é recomendado quando:

  • A construção de um objeto envolve muitos passos.
  • Existem muitos parâmetros opcionais.
  • É necessária a criação de diferentes representações do mesmo objeto.

Exemplo de uso do Padrão Builder em Flutter:

Vamos supor que queremos criar um widget complexo em Flutter, como um cartão personalizado com diferentes configurações de cor, título e conteúdo. Podemos usar o padrão Builder para simplificar esse processo.

// Classe que representa o Cartão
class Cartao {
final String titulo;
final String conteudo;
final Color cor;

Cartao(this.titulo, this.conteudo, this.cor);
}
// Builder para construir o Cartão passo a passo
class CartaoBuilder {
String titulo = '';
String conteudo = '';
Color cor = Colors.white;

CartaoBuilder withTitulo(String novoTitulo) {
titulo = novoTitulo;
return this;
}

CartaoBuilder withConteudo(String novoConteudo) {
conteudo = novoConteudo;
return this;
}

CartaoBuilder withCor(Color novaCor) {
cor = novaCor;
return this;
}

Cartao construir() {
return Cartao(titulo, conteudo, cor);
}
}

// Exemplo de utilização do Builder para criar um Cartão
void main() {
Cartao cartaoPersonalizado = CartaoBuilder()
.withTitulo('Meu Cartão')
.withConteudo('Conteúdo do cartão')
.withCor(Colors.blue)
.construir();

print('Cartão criado: ${cartaoPersonalizado.titulo}, ${cartaoPersonalizado.conteudo}, ${cartaoPersonalizado.cor}');
}

Neste exemplo, o CartaoBuilder permite a criação de diferentes cartões personalizados sem precisar configurar todos os atributos ao mesmo tempo.

--

--

Ildeberto Vasconcelos
Ildeberto Vasconcelos

Written by Ildeberto Vasconcelos

📱Flutter & Dart 🚀💻 Turning ideas into powerful applications.💡🔥 #Flutter | .NET

No responses yet