Sobes.tech
Junior — Middle

Môžete vysvetliť koncept odloženého načítania údajov a v akých prípadoch sa používa?

sobes.tech AI

Odpoveď od AI

Lazy Loading (Línéové Načítanie) je vzor, pri ktorom načítanie alebo inicializácia zdroja neprebieha okamžite, ale iba pri prvom prístupe k nemu. To umožňuje šetriť zdroje a urýchliť spustenie programu tým, že ťažké objekty sú načítané iba podľa potreby.

V C# je lazy loading často implementovaný pomocou triedy Lazy<T>, ktorá zapúzdruje logiku vytvárania objektu a zaručuje, že objekt bude vytvorený iba pri prvom prístupe k vlastnosti Value.

Príklad:

Lazy<HeavyObject> lazyObject = new Lazy<HeavyObject>(() => new HeavyObject());

// HeavyObject nie je vytvorený, kým nevoláme:
var obj = lazyObject.Value; // Tu dochádza k inicializácii

Lazy loading sa používa, keď:

  • Vytvorenie objektu je časovo alebo zdrojovo náročné.
  • Objekt nemusí byť počas behu programu potrebný.
  • Je potrebné optimalizovať využitie pamäti a výkon.

V ORM (napríklad, Entity Framework) sa lazy loading používa na načítanie súvisiacich dát z databázy iba pri ich prístupe, nie okamžite pri načítaní hlavného objektu.