Olá pessoal, estou lendo sobre tudo que diz respeito a estrutura de uma aplicação(Spring, Struts, Facade) para descobrir onde colocar a lógica do sistema, mas não consigo chegar a uma conclusão nessa parte.
Como não acho que seja correto colocar uma função de cálculo, por exemplo, em um Managed Bean, eu gostaria de saber como ficaria em um caso como este:
//Bean
public class Calculo{
private Integer val1;
private Integer val2;
//gets, sets, equals, hashcode, toString
}
//ManagedBean
public class CalculoFace{
Calculo selectedCalculo;
CalculoFace(){
selectedCalculo = new Calculo();
}
public Calculo getSelectedcalculo(){ return this.selectedCalculo;}
public void setSelectedcalculo ( Calculo selectedcalculo){
this.selectedCalculo = selectedcalculo;
}
public Integer calculaOperacao()
{
return selectedCalculo.getVal1() + this.selectedCalculo.getVal2(); // Essa operação deve ficar onde?
}
}
//Calculo.jsp
<h:commandButton action="#{CalculoFace.calculaOperacao}" value = "Calcular"/>
Esse método “calculaOperacao” deve ficar no ManagedBean mesmo ou devo criar outra classe, instanciar um objeto dessa no MBean e chamar o método. Essa classe de métodos seria a de Business objects, poderia chamada de CalculoBO?
Gostaria de me aprfundar no assunto então sobre o que devo estudar?
Além da dica de estudo, por favor me digam onde ficam os métodos, só para matar a curiosidade
Assim seria com Façade? Se não o que é? É algum padrão? Preciso saber para poder estudar mais sobre o asssunto pq acho bom trabalhar com essa estrutura.
//ManagedBean
public class CalculoFace{
Calculo selectedCalculo;
CalculoBO calculoBO;
CalculoFace(){
selectedCalculo = new Calculo();
}
public Calculo getSelectedcalculo(){ return this.selectedCalculo;}
public void setSelectedcalculo ( Calculo selectedcalculo){
this.selectedCalculo = selectedcalculo;
}
public Integer calculaOperacao()
{
return calculoBO (selectedCalculo.getVal1() , this.selectedCalculo.getVal2()) // Fica assim mesmo?
}
}
//CalculoBO.java
public class CalculaBO{
public Integer calculaOperacao(int val1, nt val2)
{
return val1 + val2;
}
Posso usar esse BO(Business Object) no final do nome da classe? O BO se aplica mesmo a esse caso?
obs.: desculpa pelo monte de perguntas mas se eu não resolver essa pequenas dúvidas eu fico empacada