Architektura cebuli vs architektura trójwarstwowa

11

Widzę tylko zalety architektury cebulowej w porównaniu z architekturą 3-warstwową, w której BL miał obowiązek wywoływać metody na DAL (lub interfejs DAL) w celu wykonania CRUD. Cebula ma lepszą separację problemów, testowalność, łatwość konserwacji i jest czystsza.

Czy architektura cebuli jest rzeczywiście lepsza pod każdym względem, a architektura trójwarstwowa to po prostu stary sposób robienia rzeczy, czy też istnieją scenariusze, w których wolałbym używać architektury trójwarstwowej, jeśli tak - które?

BornToCode
źródło

Odpowiedzi:

10

Warstwy, cebula, porty, adaptery: wszystko jest takie samo

Ponieważ w tym artykule wyjaśniono, że cebula jest równoważna z 3 warstwami + zastosowaniem zasady inwersji zależności (DIP), pytanie brzmi: „gdzie powinienem używać DIP?”. Powiedziałbym, że każdy projekt nie jest zabawką. Korzystanie z DIP pozwala na bardziej izolację, testowanie i konserwację rdzenia kodu. Kiedy tak naprawdę nie przejmujesz się tym, to jest to projekt odrzucony lub gdy handlujesz utrzymaniem wydajności.

Nie należy również mylić DIP z pojemnikami DI (Dependency Injection). Jedno nie oznacza drugiego.

Kasey Speakman
źródło