não tinha visto ainda essa sintaxe public CandleBuilder abertura(double abertura) . Pois sempre criei assim public double getAbertura() {
return abertura;
}
O pattern “builder” é muito útil (em vez de usar getters e setters bobocas) porque permite criar objetos de forma mais limpa. Um exemplo de uso da tal classe:
Tá eu já tinha visto construtor, mas desta maneira public final class Negocio {
private final double preco;
private final int quantidade;
private final Calendar data;
public Negocio(double preco, int quantidade, Calendar data) {
this.preco = preco;
this.quantidade = quantidade;
this.data = data;
}
Dessa maneira aí do builder ,ele estaria criando métodos com os nomes das variáveis? é isso?
Mas não é nesse acima, mas neste aqui public CandleBuilder abertura(double abertura) {
this.abertura = abertura;
aberturaDefinida = true;
return this;
} que não sei.
então assim: essa parte “abertura(” é um método da classe CandleBuilder, que recebe um double e o popula, ainda popula a variável abertura e aberturaDefinida e retorna isso pra própria classe?
Abertura é um método de CandleBuilder este método realiza a sua função de setar o atributo abertura e aberturaDefinida e seguindo o method chaining retorna sua instância por onde o metodo foi chamado (contexto atual do método), possibilitando continuar a configuração da instância.
Já faz muito tempo, mas a primeira vez que vi um Method chaining fiquei meio perdido também, kk, isso pode ajudar: