Jump to content

Layer (object-oriented design)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Kvng (talk | contribs) at 20:27, 31 March 2020 (avoid unnec redirect). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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

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