Onion Architecture

E679172

Onion Architecture is a software architectural pattern that emphasizes a domain-centric design with concentric layers that enforce dependency inversion and separation of concerns.

Try in SPARQL Jump to: Statements Referenced by

Statements (50)

Predicate Object
instanceOf architectural style
software architectural pattern
contrastsWith layered architecture with outward dependencies
definesRule UI depends on application and domain layers
data access is implemented in outer layers
dependencies point inwards toward the domain
infrastructure depends on domain, not vice versa
inner layers must not depend on outer layers
emphasizes business logic
domain model
independence from databases
independence from frameworks
independence from infrastructure
independence from user interface
encourages use of dependency injection containers
use of repositories for persistence abstraction
writing unit tests against domain interfaces
focusesOn core domain as the center of the system
goal enable easier replacement of infrastructure
improve testability of domain logic
isolate business logic from technical concerns
reduce coupling to frameworks
support long-term maintainability
hasDesignPrinciple dependency inversion
domain-centric design
encapsulation of business rules
loose coupling
maintainability
separation of concerns
testability
hasLayer application layer
core layer
domain layer
infrastructure layer
outer layers
presentation layer
organizesCodeAs concentric layers
relatedTo Clean Architecture NERFINISHED
Hexagonal Architecture NERFINISHED
separates application services from user interface
business rules from persistence concerns
domain logic from infrastructure code
similarConcept ports and adapters architecture
supports domain-driven design
typicalUseCase complex business systems
domain-driven design projects
enterprise applications
usesPattern dependency inversion principle
interfaces for abstractions
inversion of control

Referenced by (1)

Full triples — surface form annotated when it differs from this entity's canonical label.

Clean Architecture influencedBy Onion Architecture