Inițializare leneșă
Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită la 1 noiembrie 2018; verificările necesită
4 modificări .
Inițializarea leneșă este o tehnică de programare atunci când o operațiune care necesită mult resurse (crearea obiectului, calculul valorii) este efectuată imediat înainte ca rezultatul să fie utilizat. Astfel, inițializarea se face „la cerere” mai degrabă decât în avans. O idee similară își găsește aplicații într-o mare varietate de domenii: de exemplu, compilarea din mers și conceptul de logistică just -in-time .
Un caz special de inițializare leneșă - crearea unui obiect în momentul accesării acestuia - este unul dintre modelele de proiectare generative . Este folosit de obicei împreună cu modele precum Factory Method , Loner și Proxy .
Avantaje
- Inițializarea se efectuează numai atunci când este cu adevărat necesară;
- Accelerează inițializarea.
Dezavantaje
- Nu este posibil să se stabilească în mod explicit ordinea în care obiectele sunt inițializate;
- Există o întârziere la primul acces la obiect, care poate fi critică atunci când se efectuează în paralel o altă operațiune care necesită mult resurse. Ca rezultat, este necesar să se ia în considerare cu atenție oportunitatea utilizării inițializării „leneșe” în sistemele software cu mai multe fire, în special în sistemul de operare .
Implementare
Acest șablon poate fi implementat în mai multe moduri diferite:
- Lazy Initialization - Inițializare la cerere. Acesta este cel mai simplu mod - de a implementa o verificare a câmpului pentru null și, dacă este necesar, de a o completa cu date.
- Virtual Proxy - obiect proxy virtual. Metoda este oarecum complicată de problema identificării obiectelor, deoarece in locul lor, inainte de initializare, actioneaza inlocuitorii.
- Fantomă - obiect fals, fantomă. Acesta este un obiect real cu stare incompletă.
- Value Holder - Managerul valorii. Un obiect este un înveliș pentru o anumită valoare. De asemenea, nu este cea mai bună opțiune din cauza problemelor de tastare.
Link -uri
site-uri în limba rusă
Vezi și