What is decoupling? Why are loosely-coupled classes desirable? What are some drawbacks?

Technical