Refactorización de las librerías de la lógica de negocio o servicios, al empezar a usarlos desde la capa de presentación (controladores) nos damos cuenta de que es mejor aplicar una refactorización según DIP.
Las interfaces no deben incluir los métodos o propiedades de configuración. Son detalles de implementación, otra implementación de AddressBook podría no requerir el IdGenerator.