Оё шумо метавонед консепти боргирии дерунрои маълумотҳоро шарҳ диҳед ва дар кадом ҳолатҳо истифода мешавад?
sobes.tech AI
Ҷавоб аз AI
Лейзи Лодинг (Беғазор кардани бори суст) намунаест, ки дар он боргирӣ ё оғозёбӣ кардани манбаъ фавран сурат намегирад, балки танҳо дар аввалин дастрасӣ ба он. Ин имкон медиҳад, ки захираҳоро сарфа кунад ва оғоз кардани барнома тезтар шавад, бо бор кардани объектҳои вазнин танҳо вақте ки лозим аст.
Дар C#, лейзи лоадинг одатан бо истифода аз синфи Lazy<T> амалӣ мешавад, ки логикаи эҷоди объектро пинҳон мекунад ва кафолат медиҳад, ки объект танҳо дар аввалин дастрасӣ ба хусусияти Value эҷод мешавад.
Масалан:
Lazy<HeavyObject> lazyObject = new Lazy<HeavyObject>(() => new HeavyObject());
// HeavyObject то вақте ки мо даъват накунем, эҷод намешавад:
var obj = lazyObject.Value; // Ин ҷо оғозёбӣ мешавад
Лейзи лоадинг дар ҳолатҳои зерин истифода мешавад:
- Эҷоди объект вақт ва ё захираҳоро гарон мекунад.
- Объект метавонад дар вақти иҷро кардан зарурӣ набошад.
- Барои оптимизатсияи истифодаи хотира ва иҷроиш зарур аст.
Дар ORM (масалан, Entity Framework), лейзи лоадинг барои бор кардани маълумоти вобаста аз база танҳо вақте ки ба онҳо дастрасӣ мешавад, истифода мешавад, на фавран дар вақти боркунии объект асосӣ.