Líná inicializace
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 1. listopadu 2018; kontroly vyžadují
4 úpravy .
Líná inicializace je programovací technika, kdy se nějaká operace náročná na zdroje (vytvoření objektu, výpočet hodnoty) provede bezprostředně před použitím jejího výsledku . Inicializace se tedy provádí "na vyžádání" spíše než předem. Podobná myšlenka nachází uplatnění v celé řadě oblastí: například on-the-fly kompilace a logistický koncept just -in-time .
Speciálním případem líné inicializace - vytvoření objektu v okamžiku přístupu k němu - je jeden z generativních návrhových vzorů . Obvykle se používá ve spojení se vzory jako Factory Method , Loner a Proxy .
Výhody
- Inicializace se provádí pouze tehdy, když je to skutečně potřeba;
- Zrychlete inicializaci.
Nevýhody
- Není možné explicitně nastavit pořadí, ve kterém jsou objekty inicializovány;
- Při prvním přístupu k objektu dochází ke zpoždění, které může být kritické, když se paralelně provádí jiná operace náročná na zdroje. V důsledku toho je nutné pečlivě zvážit vhodnost použití „líné“ inicializace ve vícevláknových softwarových systémech, zejména OS .
Implementace
Tato šablona může být implementována několika různými způsoby:
- Lazy Initialization – Inicializace na vyžádání. Toto je nejjednodušší způsob - implementovat kontrolu pole na null a v případě potřeby jej vyplnit daty.
- Virtuální proxy - virtuální proxy objekt. Metoda je poněkud komplikovaná problémem identifikace objektu, protože místo nich před inicializací působí substituty.
- Ghost - Falešný objekt, Ghost. Toto je skutečný objekt v neúplném stavu.
- Držitel hodnoty – Správce hodnoty. Objekt je obal pro nějakou hodnotu. Také to není nejlepší volba kvůli problémům s psaním.
Odkazy
Stránky v ruském jazyce
Viz také