Inversion of Control (IoC) is about software components doing what they are
told, when they are told. Your OO application could well become
unmaintainable without it.
IoC is a pattern that helps teams avoid the dependency hell that results when
an application grows into a large pseudo-platform without taking care to
adequately decouple logic; that thing that ultimately only a couple of its
omnipotent architects or old-lag premium-rate contractors really understand;
that system that Heath Robinson and Rube Goldberg might have made together
(look them up).
The problem with small working applications that become large is that
static-method entanglement does not scale. One part of a system that's
otherwise fairly self-contained statically accesses another part of the
system and cannot be instantiated without invoking methods in the latter.
Thus it can't easily be isol... (more)