Junior — Middle
Можете ли да објасните концепт одложеног учитавања података и у којим случајевима се примењује?
sobes.tech АИ
Одговор од АИ
Lazy Loading (Leničko Učitavanje) je obrazac u kojem učitavanje ili inicijalizacija resursa ne nastupa odmah, već samo pri prvom pristupu. Ovo omogućava uštedu resursa i ubrzava pokretanje programa, učitavajući teške objekte samo kada su potrebni.
U C#-u, Lazy Loading se često implementira pomoću klase Lazy<T>, koja enkapsulira logiku kreiranja objekta i garantuje da će objekat biti kreiran samo pri prvom pristupu svojstvu Value.
Primer:
Lazy<HeavyObject> lazyObject = new Lazy<HeavyObject>(() => new HeavyObject());
// HeavyObject se ne kreira dok ne pozovemo:
var obj = lazyObject.Value; // Ovde dolazi do inicijalizacije
Lazy Loading se primenjuje kada:
- Kreiranje objekta je skupo po vremenu ili resursima.
- Objekat možda neće biti potreban tokom izvršavanja.
- Potrebno je optimizovati korišćenje memorije i performanse.
U ORM-u (npr. Entity Framework), Lazy Loading se koristi za učitavanje povezanih podataka iz baze samo kada se na njih pristupi, a ne odmah pri učitavanju glavnog objekta.