Na decisão de adotar uma arquitetura em camadas, certas características devem ser levadas em consideração. Estas características devem ser consideradas e comparadas aos benefícios para saber se uma arquitetura em camadas irá realmente ser adequada na solução do problema que você está tentando resolver.
Estas características estão listadas a seguir:
Em uma solução monolítica, um componente no mais alto nível de abstração pode chamar uma função direta no nível mais baixo. Esta não é possível numa arquitetura em camadas, porque todas as camadas intermediárias estão envolvidas na chamada. Cada chamada realizada entre diferentes camadas incorre em uma ligeira perda de desempenho para o processamento.
XEmbora una arquitetura em camadas normalmente evite que alterações em uma camada comprometam o funcionamento das demais camadas, em alguns casos isso não é possível. Nestes casos, será necessário reestruturar outras camadas em virtude de uma mudança em outra camada.
XEsta situação pode ocorrer quando várias camadas fornecem redundância para apoiar confiabilidade aos níveis superiores. Estas múltiplas camadas podem adicionar várias verificações nas mensagens, quando uma única verificação seria suficiente.
XConsequentemente, alguns sistemas em camadas podem ter muita funcionalidade em poucas camadas, o que torna mais difícil de reutilizar as camadas e mais difícil de compreender o objetivo de cada camada. Outra desvantagem é que um designer pode criar muitas camadas, aumentando assim a sobrecarga associada com a arquitetura em camadas. Dividir um sistema no número de camadas mais adequado é o maior desafio desta arquitetura.
X