A multi-tier application organizes classes by concern, separating persistence, presentation, workflow, and business logic. Layer interfaces allow one concern to change without significantly disrupting another. section 3.1.1
A typical three-layer arrangement assigns distinct responsibilities:
- Presentation layer: handles user-interface logic, page or screen navigation, rendering, and user actions. section 3.1.1
- Business layer: contains business rules and coordinates application behavior. section 3.1.1
- Persistence layer: isolates persistence as a distinct application concern and supports the storage of domain information. section 3.1.1
- Cross-cutting concerns such as logging, authorization, and transaction demarcation can be implemented generically by framework code. section 3.1.1
Layers communicate from top to bottom: each layer depends only on the interface of the layer directly below it. This constrains inter-layer dependencies and limits the effect of implementation changes. section 3.1.1
Online auction application
CaveatEmptor uses a layered application architecture to organize a complex domain model, persistent Java classes, Bean Validation, and mapping metadata for JPA and Hibernate. section 3.0






