[quote=hlegius][quote=“sergiotaborda”]Não. O correto é que o serviço sim altere o estado sem utilizar o serviçoPedido.
Cada serviço sabe o que está fazendo e seu papel no grande esquema das coisas. Ele tem liberdade e capacidade para tomar a decisão de alterar o estado. Como tal ele pode alterar o estado sozinho. [/quote]
Hum. Então um Serviço só falaria com outro Serviço caso uma rotina do ServiçoA.metodoA() fosse executar uma rotina inteira do ServiçoB.metodoB() que já existe pois essa rotina “B” também é necessária viver separadamente por causa de outra necessidade do domínio, penso eu. Correto ?
[/quote]
não se trata do métodoA ser chamado ou não. Não se trata de reaproveitamento de codigo.
Trata-se de consumir serviços. Você pode lavar o seu carro ou consumir o serviço de um lavador de carros.
Se o lavador não está disponível ou é caro demais vc mesmo faz - sabendo que a qualidade é menor.
quanto mais o serviço é especializado e/ou importante mais uso vc fará de um serviço e menos vc tentará fazer sozinho.
Então sim, se o serviço A consome B , o serviço A pedirá a B que execute uma ação completa ( aka irá chamar um método de B)
O importante é entender que não se trata de poupar codigo, trata-se de separar a responsabilidade dos serviços do sistema.
com o tempo os serviços evoluem ( mais simples, mais rápidos, mais eficazes … ) e quem os consome se beneficia sem querer.
Ao que entendi, caso a Action apenas deseje exibir uma busca, sem crimes ela criar o Criteria na Action e listar os elementos.
[/quote]
Perai , não foi isso que eu disse.
Errado
class Action {
public void doSomething(){
Criteria c = Crietia.search(Produto.class)
where("tipo").is("especial")
List c = repositorio.findAllByCriteria(c);
session.setAttribute("produtos" , c);
}
}
Certo:
class Action {
public void doSomething(){
session.setAttribute("produtos" , repositorio.findAllSpecial());
}
}
Actions não criam critérios. Isso é responsabilidade dos repositorios !
Sim. Mas o façade pode ele mesmo ser um repositorio. ( ele é um repositorio daquil o que vc está procurando)