Inicialización perezosa
La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la
versión revisada el 1 de noviembre de 2018; las comprobaciones requieren
4 ediciones .
Inicialización perezosa (perezosa) |
---|
Inicialización perezosa |
Descrito en Patrones de diseño |
No |
La inicialización diferida es una técnica de programación en la que se realiza una operación que consume muchos recursos (creación de objetos, cálculo de valores) inmediatamente antes de utilizar su resultado. Por lo tanto, la inicialización se realiza "bajo demanda" en lugar de antes de tiempo. Una idea similar encuentra aplicaciones en una amplia variedad de áreas: por ejemplo, la compilación sobre la marcha y el concepto de logística justo a tiempo .
Un caso especial de inicialización diferida (crear un objeto en el momento de acceder a él) es uno de los patrones de diseño generativo . Por lo general, se usa junto con patrones como Factory Method , Loner y Proxy .
Ventajas
- La inicialización se realiza solo cuando es realmente necesaria;
- Acelerar la inicialización.
Desventajas
- No es posible establecer explícitamente el orden en que se inicializan los objetos;
- Hay un retraso en el primer acceso al objeto, que puede ser crítico cuando se realiza en paralelo otra operación que consume muchos recursos. Como resultado, es necesario considerar detenidamente la idoneidad de utilizar la inicialización "perezosa" en los sistemas de software multiproceso, especialmente en los sistemas operativos .
Implementación
Esta plantilla se puede implementar de varias maneras diferentes:
- Inicialización diferida - Inicialización bajo demanda. Esta es la forma más fácil: implementar una verificación de campo para nulo y, si es necesario, llenarlo con datos.
- Proxy virtual: objeto de proxy virtual. El método es algo complicado por el problema de la identificación de objetos, ya que en lugar de ellos, antes de la inicialización, actúan los sustitutos.
- Fantasma - Objeto ficticio, Fantasma. Este es un objeto real con un estado incompleto.
- Titular del valor: el administrador del valor. Un objeto es un envoltorio para algún valor. Tampoco es la mejor opción debido a problemas de escritura.
Enlaces
sitios en ruso
Véase también