Ésta técnica, permite explotar una de las mejores características de JavaScript, los closures on-demand, con la cual podemos crear un closure la primera vez que se invoca una función, dándonos la ventaja de crear un caché, crear un estado interno privado, reducir operaciones complejas, etc. 🙄 Pero así como tiene ventajas, éste patrón de diseño tiene desventajas que debemos conocer.
Una de las ventajas que se logra con ésta técnica, es que se puede mejorar el rendimiento de las funciones, cuando en ellas se realizan operaciones constantes que siempre arrojan el mismo resultado, ya que se crea un cache con el resultado de cada operación efectuada. Y la otra gran ventaja es que al ser on-demand, el closure y la caché sólo se crearán cuando se invoque por primera vez la función; a ésta técnica se le conoce como lazy load o lazy evaluation.