Builder

Definição

O padrão Builder organiza a criação de objetos complexos em etapas, especialmente quando eles têm muitas partes ou configurações opcionais.

Esse padrão é útil quando um objeto precisa ser criado em várias etapas ou tem muitos atributos opcionais. Ele ajuda a deixar o código mais organizado e fácil de entender.

Por que é importante

Ao criar objetos com muitos detalhes, usar um construtor direto pode deixar o código difícil de manter e propenso a erros. O Builder facilita a criação passo a passo e dá mais controle sobre cada parte da construção.

Também evita construtores com muitos parâmetros e melhora a legibilidade do código, tornando mais claro quais valores estão sendo definidos.

Exemplo prático (Python)

Imagine que estamos criando um objeto Relatorio com várias partes opcionais:

# Objeto complexo
class Relatorio:
    def __init__(self):
        self.titulo = None
        self.conteudo = None
        self.rodape = None

    def exibir(self):
        print("=== RELATÓRIO ===")
        if self.titulo:
            print(f"Título: {self.titulo}")
        if self.conteudo:
            print(f"Conteúdo: {self.conteudo}")
        if self.rodape:
            print(f"Rodapé: {self.rodape}")

# Builder
class RelatorioBuilder:
    def __init__(self):
        self.relatorio = Relatorio()

    def com_titulo(self, titulo):
        self.relatorio.titulo = titulo
        return self

    def com_conteudo(self, conteudo):
        self.relatorio.conteudo = conteudo
        return self

    def com_rodape(self, rodape):
        self.relatorio.rodape = rodape
        return self

    def construir(self):
        return self.relatorio

Uso do builder:

builder = RelatorioBuilder()
relatorio = (
    builder
    .com_titulo("Vendas 2024")
    .com_conteudo("Dados atualizados do trimestre.")
    .com_rodape("Confidencial")
    .construir()
)

relatorio.exibir()

O Builder permite montar o relatório por partes, de forma fluida e clara. Também é possível criar versões diferentes omitindo etapas.

Relacionados

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com