В объектно-ориентированном проектировании программного обеспечения слой — это группа классов , которые имеют одинаковый набор зависимостей модулей времени компоновки с другими модулями. [1] Другими словами, слой — это группа повторно используемых компонентов , которые можно повторно использовать в схожих обстоятельствах. В языках программирования различие слоев часто выражается как «импортные» зависимости между программными модулями.
Слои часто организованы в иерархию в виде дерева , с зависимостями в качестве связей между слоями. Зависимости между слоями часто являются либо отношениями наследования , композиции или агрегации , но могут использоваться и другие виды зависимостей.
Слои — это архитектурный шаблон , описанный во многих книгах, например, Pattern-Oriented Software Architecture [2]