Orthogonality programming

Orthogonality in programming can be defined in simple terms when changes in one thing do not affect any of the others. To visualise this definition, Module A should not make changes to things in Module B and vice versa.

If you design a system where Module A affects Module B; which affects module C and so on, things quickly start going out of control and the system becomes a nightmare to understand and manage.

In a real-life example describing Orthogonality in programming from the book The Self Taught Programmer, you can change the interface without affecting the database, and swap databases without changing the interface.

Diagram from JavaWorld.com