A arquitetura em camadas, também conhecida como layered architecture é uma abordagem pra estruturar o sistema dividindo em diferentes níveis de abstrações (camadas), cada uma com responsabilidades específicas. Essa prática ajuda a isolar responsabilidades, facilita a manutenção e escalabilidade.
Como as camadas funcionam?
Cada camada se concentra em um aspecto do sistema. Cada camada oferece serviços à camada imediatamente superior e consome serviços da camada inferior. A separação é baseada em responsabilidades, garantindo que mudanças em uma camada tenham impacto mínimo nas outras.
Topologia
Existem diversas variações dessa topologia (por exemplo com uma camada de serviço ou agrupamentos de camadas em módulos), ou seja, mais ou menos camadas existirão.
Cada uma das camadas tem uma função ou responsabilidade específica dentro da arquitetura, por exemplo:
- Apresentação: Lida com toda interface do usuário e lógicas de comunicação com navegadores.
- Negócio: Executa operações e fluxos de negócios específicos associados à uma requisição
- Persistência: Persistir ou recuperar informações salvas em alguma unidade de armazenamento
- Banco de dados: responsável por mantes os dados de forma física.
Cada camada forma uma abstração em volta de sua necessidade e trabalho a ser realizado dentro de uma requisição em particular. Além disso, barreiras devem existir de forma implícita entre elas. Como assim? A camada de apresentação não deveria saber ou se preocupar em como recuperar informações de um cliente ou produto (o mesmo aplica-se para as demais camadas presentes na arquitetura)
Variações do Modelo
Camada Fechada
Seguem uma hierarquia rígida, onde cada camada acessa apenas a camada diretamente inferior
Repare que nesse exemplo acima, como todas as camadas estão fechadas o fluxo deve ocorrer exatamente da forma em que elas foram definidas e posicionadas hierarquicamente.
Camada Aberta
Permitem que uma camada acesse qualquer camada abaixo dela, favorecendo a flexibilidade me alguma situações.
Já nesse outro exemplo, podemos ver uma variação com uma nova camada. A camada de serviço. Ao observar, podemos ver que a camada de serviço está marcada como aberta. Isso quer dizer que ela não é obrigatória em todas as requisições ou fluxos.
- A camada de apresentação fala com a camada de negócio
- A camada de negócio fala com a camada de serviço ou persistência
- A camada de serviço fala com a camada de persistência
- A camada de persistência fala com a camada do bando de dados
Top comments (0)