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]
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
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.