não tinha visto ainda essa sintaxe public CandleBuilder abertura(double abertura) . Pois sempre criei assim public double getAbertura() {
return abertura;
}
Giovani_Fiori
o primeiro item eh um construtor da classe.
o segundo eh um simples getter.
E
entanglement
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:
Note que isso é mais legível que usar uma montanha de setters, ou um construtor com 4 parâmetros, como:
CandleBuildercb=newCandleBuilder(100.00,110.00,50.00,120.00);// qual é a abertura, fechamento, mínimo e máximo?
E
erickdeoliveiraleal
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?
Giovani_Fiori
neste caso ele está setando o comportamento padrão e o valor das variáveis quando vc instancia esta classe.
E
erickdeoliveiraleal
Mas não é nesse acima, mas neste aqui public CandleBuilder abertura(double abertura) {
this.abertura = abertura;
aberturaDefinida = true;
return this;
} que não sei.
Giovani_Fiori
ai vc está setando o valor das variáveis e tem a propria classe como retorno quando vc instancia ela…
agora como vai usar isso já não sei te dizer…
B
Bruno_Laturner
Isso é um método, não um construtor.
Basicamente é como o entanglement, isso é usado numa técnica chamada method chaining, que é o conceito principal por trás de interfaces fluentes.
nicolas_dias
cara a parte que voce esta com dificuldade não é um construtor mas sim
um metodo que tera como retorno um objeto do tipo CandleBuilder
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?
DavidUser
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: