Sobes.tech
Junior — Middle

Kas saaksite selgitada viivitusega andmete laadimise kontseptsiooni ja millal seda kasutatakse?

sobes.tech AI

Vastus AI-lt

Lazy Loading (Hüljatud Laadimine) on muster, kus ressursi laaditakse või initsialiseeritakse mitte kohe, vaid ainult esimesel juurdepääsul. See võimaldab säästa ressursse ja kiirendada programmi käivitust, laadides rasked objektid ainult siis, kui need on vajalikud.

C#-s on Lazy Loading sageli rakendatud Lazy<T> klassi abil, mis kapseldab objekti loomise loogika ja tagab, et objekt luuakse ainult esimese juurdepääsu ajal Value omadusele.

Näide:

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

// HeavyObject ei loo, kuni me ei kutsu:
var obj = lazyObject.Value; // Siin toimub initsialiseerimine

Lazy Loading rakendub, kui:

  • Objekti loomine on aeganõudev või ressursimahukas.
  • Objekt ei pruugi olla vajalik käitamise ajal.
  • On vaja optimeerida mälu ja jõudlust.

ORM-is (näiteks Entity Framework) kasutatakse Lazy Loading, et laadida seotud andmeid andmebaasist ainult siis, kui neile pääseb ligi, mitte kohe põhiesemega laadimisel.