38. ContaBean ContaFacade
public void setSaldo public void deposita
(double valor) (int codigo, double valor){
public double getSaldo() //...
}
39. Entity
Conta
public void deposita
(double valor) {
this.saldo += valor;
}
SessionBean?
DTO?
40. |Domain-Driven Design
Fornecedor f = ...;
List<Conta> contas = dao.listaContasDoFornecedor(fornecedor, 1999);
for(Conta conta : contas) {
PrintStream stream = new PrintStream(conta.getNome());
stream.println(conta.getValor());
}
Fornecedor f = ...;
for(Conta conta : fornecedor.getContasDesde(1999)) {
conta.geraRelatorio();
}
41. |Domain-Specific Languages
Set<Strategy> strategies = new HashSet<Strategy>();
Indicator<Double> close = new
ClosePriceIndicator(timeSeries);
for (int i = 1; i <= 50; i++) {
Indicator<Double> tracker = new EMAIndicator(close, i);
Strategy strategy = new
IndicatorCrossedIndicatorStrategy(close, tracker);
strategies.add(strategy);
}
JRuby:
(1..50).paraCada{|x|
cruza(fechamento, media(x))
}