Não sei se entendi muito bem..
"An observable is an object which notifies observers about the changes in its state."
No código abaixo, por exemplo, um objeto que referencia a classe NotaFiscalBuilder seria o observable, e os observers seriam os objetos AcaoAposGerarNota?
public class NotaFiscalBuilder {
private String razaoSocial;
private String cnpj;
private LocalDateTime dataDeEmissao;
private double valorBruto;
private double impostos;
public String observacoes;
private List<ItemDaNota> todosItens = new ArrayList<ItemDaNota>();
private List<AcaoAposGerarNota> todasAcoes = new ArrayList();
public NotaFiscalBuilder() {
this.todasAcoes = new ArrayList<AcaoAposGerarNota>();
}
public void adicionaAcao(AcaoAposGerarNota acao) {
this.todasAcoes.add(acao);
}
public NotaFiscalBuilder addEmpresa(String razaoSocial) {
this.razaoSocial = razaoSocial;
return this;
}
public NotaFiscalBuilder addCNPJ(String cnpj) {
this.cnpj = cnpj;
return this;
}
public NotaFiscalBuilder addItem(ItemDaNota item) {
todosItens.add(item);
valorBruto += item.getValor();
impostos += item.getValor() * 0.05;
return this;
}
public NotaFiscalBuilder addObservacoes(String observacoes) {
this.observacoes = observacoes;
return this;
}
public NotaFiscal constroi() {
NotaFiscal nf = new NotaFiscal(razaoSocial, cnpj, dataDeEmissao, valorBruto, impostos, todosItens, observacoes);
todasAcoes.forEach((acao) ->
acao.executa(nf));
return nf;
}
}
Por fim, o texto menciona o seguinte:
"In this implementation, an observable must keep a reference to the PropertyChangeSupport instance."
O que é um PropertyChangeSupport instance? No código acima, seria possível exemplificar?