Layer (object-oriented design)

Group of software classes

Not to be confused with abstraction layer.

In software object-oriented design, a layer is a group of classes that have the same set of link-time module dependencies to other modules.[1] In other words, a layer is a group of reusable components that are reusable in similar circumstances. In programming languages, the layer distinction is often expressed as "import" dependencies between software modules.

Layers are often arranged in a tree-form hierarchy, with dependency relationships as links between the layers. Dependency relationships between layers are often either inheritance, composition or aggregation relationships, but other kinds of dependencies can also be used.

Layers is an architectural pattern described in many books, for example Pattern-Oriented Software Architecture[2]

## See also

[edit]

* Abstraction layer
* Multitier architecture
* Shearing layers

## References

[edit]

1. ^ Lakos, John (1997). Large-scale C++ software design'. Addison-Wesley.
2. ^ Pattern-Oriented Software Architecture - A System of Patterns Archived 2008-06-16 at the Wayback Machine

This software-engineering-related article is a stub. You can help Wikipedia by expanding it.

|

* v
* t
* e

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template