Layer (object-oriented design)
Appearance
In 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,[2] 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[3]
See also
References
- ^ Lakos, John (1997). Large-scale C++ software design'. Addison-Wesley.
- ^ Monperrus, Martin; Beugnard, Antoine; Champeau, Joël. "A Definition of "Abstraction Level" for Metamodels". 2009 16th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems. doi:10.1109/ecbs.2009.41.
- ^ Pattern-Oriented Software Architecture - A System of Patterns Archived 2008-06-16 at the Wayback Machine