Layer (object-oriented design)

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


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.