Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Correção para um código de builder

Ainda estou um pouco em dúvida sobre o padrão Builder.

Seria possível corrigir o código abaixo para ver se a implementação está correta?

ContaCorrenteBuilder:

package br.com.alura.designpatternsI.Builder;
public class ContaCorrenteBuilder {

    private int numeroConta;
    private int numeroAgencia;
    private double saldo;
    private String nomeTitular;

    public ContaCorrenteBuilder addnumeroConta(int numeroConta) {
        this.numeroConta = numeroConta;
        return this;
    }

    public ContaCorrenteBuilder addnumeroAgencia(int numeroAgencia) {
        this.numeroAgencia = numeroAgencia;
        return this;
    }

    public ContaCorrenteBuilder addsaldo(double saldo) {
        this.saldo = saldo;
        return this;
    }

    public ContaCorrenteBuilder addnomeTitular(String nomeTitular) {
        this.nomeTitular = nomeTitular;
        return this;
    }

    public ContaCorrente constroi() {
        return new ContaCorrente(numeroAgencia, numeroAgencia, saldo, nomeTitular);
    }

}
Teste:

package br.com.alura.designpatternsI.Builder;

public class TestandoContaCorrenteBuilder {

    public static void main(String[] args, Object ContaCorrente) {

        ContaCorrenteBuilder builder1 = new ContaCorrenteBuilder();
        builder1.addnomeTitular("arctic monkeys")
        .addnumeroAgencia(123)
        .constroi();

        ContaCorrenteBuilder builder2 = new ContaCorrenteBuilder();
        builder2.addnomeTitular("nina simone")
        .addnumeroAgencia(456)
        .addsaldo(700.00)
        .constroi();

        ContaCorrenteBuilder builder3 = new ContaCorrenteBuilder();
        builder3.addnomeTitular("Hendrix")
        .addnumeroConta(456)
        .addsaldo(600.00)
        .constroi();

    ContaCorrenteBuilder builder4 = new ContaCorrenteBuilder();
        builder4.addnomeTitular("O Rappa")
        .constroi();

    ContaCorrenteBuilder builder5 = new ContaCorrenteBuilder();
        builder5.addnomeTitular("Calle13")
        .addnumeroConta(456)
        .addnumeroAgencia(001)
        .addsaldo(200.00)
        .constroi();

    }

}

Além disso, gostaria de saber se existe algum atalho para construir o método abaixo automaticamente:

public ContaCorrenteBuilder addnumeroAgencia(int numeroAgencia) { this.numeroAgencia = numeroAgencia; return this; }
1 resposta
solução!

Boa tarde, André! Como vai?

Seria possível corrigir o código abaixo para ver se a implementação está correta?

É isso aí. Pelo que vi está tudo correto sim!

Além disso, gostaria de saber se existe algum atalho para construir o método abaixo automaticamente:

Não, mas vc pode utilizar o atalho para construção do setter e modificá-lo para ficar exatamente como vc deseja.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software