Layer (object-oriented design)
   HOME

TheInfoList



OR:

In
software Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
object-oriented design, a layer is a group of
class Class, Classes, or The Class may refer to: Common uses not otherwise categorized * Class (biology), a taxonomic rank * Class (knowledge representation), a collection of individuals or objects * Class (philosophy), an analytical concept used d ...
es 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 In botany, a tree is a perennial plant with an elongated stem, or trunk, usually supporting branches and leaves. In some usages, the definition of a tree may be narrower, e.g., including only woody plants with secondary growth, only ...
-form
hierarchy A hierarchy (from Ancient Greek, 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 ...
, with dependency relationships as links between the layers. Dependency relationships between layers are often either
inheritance Inheritance is the practice of receiving private property, titles, debts, entitlements, privileges, rights, and obligations upon the death of an individual. The rules of inheritance differ among societies and have changed over time. Offi ...
, 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''Pattern-Oriented Software Architecture - A System of Patterns


See also

* Abstraction layer * Multitier architecture * Shearing layers


References

Object-oriented programming Software design {{software-eng-stub