189. Refactoring code to add lambda laziness
In this problem, let’s have a refactoring session designed to transform a dysfunctional code into a functional one. We start from the following given code – a simple piece of class mapping information about application dependencies:
public class ApplicationDependency {
    
  private final long id;
  private final String name;
  private String dependencies;
  public ApplicationDependency(long id, String name) {
    this.id = id;
    this.name = name;
  }
  public long getId() {
    return id;
  }
  public String getName() {
    return name;
  }   
    
  public String getDependencies() {
    return dependencies;
  }  
    
  private void downloadDependencies() {
          
    dependencies = "list of dependencies 
      downloaded from repository " + Math.random();
  }    
}
    Why did we highlight the getDependencies() method? Because this is the point in the application where there is dysfunction. More precisely...