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; }