Clear explanation of Inversion of Control with examples benefits and common patterns for developers seeking cleaner decoupled code