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. 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
A hierarchy (from Greek: , from , 'president of sacred rites') is an arrangement of items (objects, names, values, categories, etc.) that are represented as being "above", "below", or "at the same level as" one another. Hierarchy is an important ...
, with dependency relationships as links between the layers. Dependency relationships between layers are often either
inheritance,
composition or
aggregation
Aggregation may refer to:
Business and economics
* Aggregation problem (economics)
* Purchasing aggregation, the joining of multiple purchasers in a group purchasing organization to increase their buying power
* Community Choice Aggregation, the ...
relationships, but other kinds of dependencies can also be used.
Layers is an
architectural pattern
An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context. The architectural patterns address various issues in software engineering, such as computer hardware perform ...
described in many books, for example ''Pattern-Oriented Software Architecture''
Pattern-Oriented Software Architecture - A System of Patterns
See also
* Abstraction layer
In computing, an abstraction layer or abstraction level is a way of hiding the working details of a subsystem. Examples of software models that use layers of abstraction include the OSI model for network protocols, OpenGL, and other graphics libra ...
* Multitier architecture
* Shearing layers
Shearing layers is a concept coined by architect Frank Duffy, which was later elaborated by Stewart Brand in his book, '' How Buildings Learn: What Happens After They're Built'' (Brand, 1994), and refers to buildings as composed of several layers ...
References
Object-oriented programming
Software design
{{compsci-stub