at run time is known as <i>resolving</i> the dependency.
 If no such instance can be found, the dependency is said to be
 <i>unsatisfied</i>, and the application is broken.

 <p>In the absence of dependency injection, an object can resolve its
 dependencies in a few ways. It can invoke a constructor, hard-wiring an
 object directly to its dependency's implementation and life cycle:

 <pre>   class Stopwatch {
     final TimeSource timeSource;
     Stopwatch () {
       timeSource = <b>new AtomicClock(...)</