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.