Dependency Injection

Example: A Quartet

We wish to construct a musical quartet consisting of a lead instrument, a chorus instrument, a bass instrument and some kind of percussion.

public class Quartet {
  private Lead myLead;
  private Chorus myChorus;
  private Bass myBass;
  private Percussion myDrum;

  public void start() {
    myLead.play();
    myChorus.play();
    myBass.play();
    myDrum.play();
  }
}