Em arquitetura de sistemas, é comum a gente ver artigos que falam sobre as layers, separando em MVC ou Apresentação, negócios e persistência.
Porém, há uma camada que vejo um aqui, outro acolá falar dela, mas não econtro nenhum documento explicando melhor seu conceito. A camada de aplicação.
Sei que seria uma camada entre apresentação e negócios, mas o que exatamente estaria nela? Que tipo de componente posso considerar próprio da camada de aplicação? Como saber separar certo apresentação de aplicação e essa de negócios?
A camada de aplicação é uma fina camada que não contém regras de negócio, apenas coordena as tarefas e pode delegá-las para o conjunto de objetos da camada logo abaixo - o domínio, no caso. Eu costumo usar essa camada para implementar funcionalidades como transação e logging.
M
MWAdriano
Seria por acaso onde eu colocaria padrões de fachada (façades) por exemplo? E os services da vida estariam aí também?
E os controllers da vida? Servlets ?
Estou entendendo bem, ou em algum aspecto aí estou pensando errado?
Grato!
M
MWAdriano
ninguém sabe?
A
amhfilho
É um assunto delicado, pois compreende as vezes o mesmo conceito mas sob diferentes óticas conforme o autor. Simplificando ao máximo, Application Layer do Evans é mais ou menos o Service Layer do Fowler.
Minha sugestão: construa seu software de forma adaptativa, pense em uma arquitetura mínima, depois incremente e sofistique-a conforme necessário. A gente as vezes quer construir um software com a arquitetura perfeita e o estado-da-arte em design mas isto não existe. São os conceitos mais simples que valem mais.
Espero ter ajudado