Estou decidindo entre dois padrões para implementar a camada de negócios do meu sistema web, qual implementar Command ou Facade?
Acima da camada de negócios está a interface, provavelmente essa camada vai ser implementada de diferentes formas, dentre elas, web e mobile.
Abaixo da camada de negócios tenho a camada de aplicação com todo meu sistema complexo.
[quote=DavidUser]Estou decidindo entre dois padrões para implementar a camada de negócios do meu sistema web, qual implementar Command ou Facade?
Acima da camada de negócios está a interface, provavelmente essa camada vai ser implementada de diferentes formas, dentre elas, web e mobile.
Abaixo da camada de negócios tenho a camada de aplicação com todo meu sistema complexo.[/quote]
“A camada de interface será web e mobile” é uma coisa que ouvimos muito hoje em dia. Isto não existe.
A camada mobile ou é standalone (ou seja, só roda no celular) ou comunica com o servidor através de uma API, ou simplesmente mostra páginas html vindas do servidor.
Nas primeira opção, o servidor é irrelevante. Nas duas outras é web que está sendo usado. Com a API é um url que responde a serviços (com REST ou SOAP). Com as páginas responde html.
Portanto, o cliente no servidor sempre é web. Só que um é web html e o outro é web serviços (webservices).
Da camada web para baixo são os mesmos serviços sendo usados.
Então, Façade ou Command ?qual deles responde a serviços ? É possivel usar command sem ter algum objeto que execute o comando ? que padrão implementa esse objeto de execução ?
Conclusão :Façade.
A parte web se serviços terá o seu Façade comunicando com os serviços da camada abaixo e a parte de web hml terá o seu Façade (diferente) que comunica com os mesmos serviços abaixo.
Valeu! Ajudou bastante.