Camada de aplicação

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?

Grato.

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.

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!

ninguém sabe?

É 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.

Tem algum material de referência pra você se basear:
http://www.guj.com.br/java/72560-application-layerservicelayer--serviceddd---eric-evans-e-martin-fowler

Um post do Fowler que fala sobre este assunto:

Tem este post antigo do Shoes sobre seu artigo na MJ(eu tenho esta revista guardada em casa, vou procurar e depois posto mais informações):
http://www.fragmental.com.br/wiki/index.php?title=Arquitetura_de_Camadas_em_Java_EE

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 :slight_smile: