Sobes.tech
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.