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