Why is it a good idea for “lower” application layers not to be aware of “higher” ones?

Technology CommunityCategory: Layering & MiddlewareWhy is it a good idea for “lower” application layers not to be aware of “higher” ones?
VietMX Staff asked 3 years ago

The fundamental motivation is this:

You want to be able to rip an entire layer out and substitute a completely different (rewritten) one, and NOBODY SHOULD (BE ABLE TO) NOTICE THE DIFFERENCE.

The most obvious example is ripping the bottom layer out and substituting a different one. This is what you do when you develop the upper layer(s) against a simulation of the hardware, and then substitute in the real hardware.

Also layers, modules, indeed architecture itself, are means of making computer programs easier to understand by humans.