SSW Foursquare

Do You Use a Dependency Injection Centric Architecture?

Last updated by Brady Stroud [SSW] about 1 month ago.See history

The classes in each layer can depend on layers toward the center.

It emphasizes the use of interfaces for the business logic and repository layers. The repository layer corresponds to the Data Access Layer in an n-Tier architecture.

An n-Tier architecture has at its base the database.

The core of the onion architecture is the Domain Model, and all dependencies are injected. This leads to more maintainable applications since it emphasizes the separation of concerns.

dependency injection bad
Figure: Bad Example – N-Tiered architectures do not inherently support dependency injection

dependency injection good
Figure: Good Example – The Onion Architecture promotes layers built on interfaces, and then injecting dependencies into those layers. This keeps coupling low, and therefore maintainability high

Adam Stephensen
Igor Goldobin
We open source. Powered by GitHub