Junior — Middle
Můžete vysvětlit koncept odloženého načítání dat a v jakých případech se používá?
sobes.tech AI
Odpověď od AI
Lazy Loading (Línéové Načítání) je vzor, při kterém načítání nebo inicializace zdroje neprobíhá ihned, ale pouze při prvním přístupu k němu. To umožňuje šetřit zdroje a urychlit spuštění programu tím, že těžké objekty jsou načítány pouze podle potřeby.
V C# je lazy loading často implementován pomocí třídy Lazy<T>, která zapouzdřuje logiku vytváření objektu a zaručuje, že objekt bude vytvořen pouze při prvním přístupu k vlastnosti Value.
Příklad:
Lazy<HeavyObject> lazyObject = new Lazy<HeavyObject>(() => new HeavyObject());
// HeavyObject není vytvořen, dokud nevoláme:
var obj = lazyObject.Value; // Zde dochází k inicializaci
Lazy loading se používá, když:
- Vytvoření objektu je časově nebo zdrojově náročné.
- Objekt nemusí být během běhu programu nutný.
- Je třeba optimalizovat využití paměti a výkon.
V ORM (například Entity Framework) se lazy loading používá k načítání souvisejících dat z databáze pouze při jejich přístupu, nikoli ihned při načítání hlavního objektu.