Arquitetura de cebola vs arquitetura de três camadas

11

Vejo apenas benefícios para a arquitetura de cebola sobre a arquitetura de três camadas, onde o BL tinha a responsabilidade de chamar métodos no DAL (ou uma interface do DAL) para fazer CRUD. A cebola tem uma melhor separação de preocupações, capacidade de teste, manutenção e é mais limpa.

Então a arquitetura de cebola é realmente melhor em todos os aspectos e a arquitetura em três camadas é apenas uma maneira antiga de fazer as coisas, ou há alguns cenários em que eu preferiria usar a arquitetura em três camadas, se sim - qual?

BornToCode
fonte

Respostas:

10

Camadas, cebolas, portas, adaptadores: é tudo a mesma coisa

Como este artigo deixa claro que cebola é equivalente a 3 camadas + aplicação do Princípio de inversão de dependência (DIP), a pergunta se torna "onde devo preferir usar DIP?" Eu diria que qualquer projeto que não seja de brinquedo. O uso do DIP permite que o núcleo do seu código seja mais isolado, testável e sustentável. Quando você realmente não se importa com isso, é quando se trata de um projeto descartável ou quando você está trocando manutenibilidade por desempenho.

Além disso, não confunda DIP com contêineres DI (Injection Dependency). Um não implica o outro.

Kasey Speakman
fonte