Boa tarde!
No padrão proxy implementamos a seguinte lógica:
@Override
public BigDecimal getValor() {
if (this.valor == null) {
this.valor = orcamento.getValor();
}
return this.valor;
}
// Main
Orcamento novo = new Orcamento();
novo.adicionarItem(new ItemOrcamento(new BigDecimal("500")));
novo.adicionarItem(antigo);
OrcamentoProxy orcamentoProxy = new OrcamentoProxy(novo);
System.out.println(orcamentoProxy.getValor());
System.out.println(orcamentoProxy.getValor());
// adicionei um novo item, assim mudando o valor do orçamento
novo.adicionarItem(new ItemOrcamento(new BigDecimal("500")));
// Como pegar o valor atual? Ainda imprime o valor antigo do orçamento
System.out.println(orcamentoProxy.getValor());
Mas e quando o valor do orçamento mudar? O proxy ainda estará pegando o valor antigo, como poderíamos pegar o valor atual do orçamento? Não consegui pensar uma forma de implementar isso...