Doven initialisering
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 1. november 2018; checks kræver
4 redigeringer .
Doven (doven) initialisering |
---|
Doven initialisering |
Beskrevet i Design Patterns |
Ikke |
Doven initialisering er en programmeringsteknik , når en eller anden ressourcekrævende operation (genstandsskabelse, værdiberegning) udføres umiddelbart før resultatet bruges. Initialisering udføres således "on demand" i stedet for før tid. En lignende idé finder anvendelse på en lang række områder: for eksempel on-the-fly kompilering og just -in-time logistikkonceptet .
Et særligt tilfælde af doven initialisering - at skabe et objekt på tidspunktet for adgang til det - er et af de generative designmønstre . Det bruges typisk i forbindelse med mønstre som Factory Method , Loner og Proxy .
Fordele
- Initialisering udføres kun, når det virkelig er nødvendigt;
- Fremskynd initialiseringen.
Ulemper
- Det er ikke muligt eksplicit at angive den rækkefølge, som objekter initialiseres i;
- Der er en forsinkelse ved første adgang til objektet, hvilket kan være kritisk, når en anden ressourcekrævende operation udføres parallelt. Som et resultat er det nødvendigt nøje at overveje hensigtsmæssigheden af at bruge "doven" initialisering i multitrådede softwaresystemer, især OS .
Implementering
Denne skabelon kan implementeres på flere forskellige måder:
- Lazy Initialization - Initialisering efter behov. Dette er den nemmeste måde - at implementere et felttjek for null og om nødvendigt udfylde det med data.
- Virtuel proxy - Virtuelt proxy-objekt. Metoden er noget kompliceret af problemet med objektidentifikation, da i stedet for dem, før initialisering, handler substitutter.
- Ghost - Dummy objekt, Ghost. Dette er et rigtigt objekt med ufuldstændig tilstand.
- Værdiholder - Værdiforvalteren. Et objekt er en indpakning for en vis værdi. Heller ikke den bedste mulighed på grund af skriveproblemer.
Links
Russisksprogede websteder
Se også