layering<span> is the organization of programming into separate functional components that interact in some sequential and hierarchical way, with each </span>layer<span> usually having an interface only to the </span>layer<span> above it and the </span>layer<span> below it. </span>