---
layout: pattern
title: Layers
folder: layers
permalink: /patterns/layers/
categories: Architectural
tags:
 - Java
 - Difficulty-Intermediate
 - Spring
---

**Intent:** Layers is an architectural style where software responsibilities are
 divided among the different layers of the application.

![alt text](./etc/layers.png "Layers")

**Applicability:** Use the Layers architecture when

* you want clearly divide software responsibilities into differents parts of the program
* you want to prevent a change from propagating throughout the application
* you want to make your application more maintainable and testable

**Credits:**

* [Pattern Oriented Software Architecture Vol I-V](http://www.amazon.com/Pattern-Oriented-Software-Architecture-Volume-Patterns/dp/0471958697)

