Inicialización perezosa


En programación de computadoras , la inicialización perezosa es la táctica de retrasar la creación de un objeto , el cálculo de un valor o algún otro proceso costoso hasta la primera vez que se necesita. Es una especie de evaluación perezosa que se refiere específicamente a la instanciación de objetos u otros recursos.

Esto generalmente se logra aumentando un método de acceso (o captador de propiedad) para verificar si un miembro privado, que actúa como caché, ya se ha inicializado. Si es así, se devuelve de inmediato. De lo contrario, se crea una nueva instancia, se coloca en la variable miembro y se devuelve a la persona que llama justo a tiempo para su primer uso.

Si los objetos tienen propiedades que se utilizan con poca frecuencia, esto puede mejorar la velocidad de inicio. El rendimiento medio promedio del programa puede ser ligeramente peor en términos de memoria (para las variables de condición) y ciclos de ejecución (para verificarlos), pero el impacto de la instanciación de objetos se extiende en el tiempo ("amortizado") en lugar de concentrarse en la fase de inicio de un sistema y, por lo tanto, los tiempos de respuesta medios se pueden mejorar considerablemente.

En el código multiproceso , el acceso a los objetos / estados inicializados de forma diferida debe sincronizarse para protegerse contra las condiciones de carrera .

En una vista de patrón de diseño de software , la inicialización diferida se usa a menudo junto con un patrón de método de fábrica . Esto combina tres ideas:

En C, la evaluación diferida normalmente se implementaría dentro de una sola función, o un solo archivo fuente, usando variables estáticas .