hurtig tip: singleton -

, hurtigt tip: singleton -,,,,, andel,,,,,,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,,, to gange om måneden, kan vi se på nogle af vores læsere favorit stillinger fra hele historien om activetuts +.i denne uge er retro aktive hurtigt tip, først blev offentliggjort i juni 2010, er en introduktion til en populær, men ofte mis brugt) bestemt mønster.,, i denne hurtige tip, vi skal tale om den singleton design mønster, og hvordan den kan hjælpe dig med at optimere deres kode, når du har brug for et tilfælde af en klasse.,,,, trin 1: indledning, som programmør, du må være klar over, at der er tilfælde, hvor man ønsker at bruge et tilfælde af en klasse, men du vil skabe en og holde det i hele programmet.- det er for 'er fygter.,, trin 2: hvad er en singleton?en singleton er et objekt orienteret udformning mønster, der anvendes af mange programmører; det kan man skabe en slags "global" tilfælde af en klasse.det er oprettet på en sådan måde, at kun et enestående eksempel kan eksistere, således at alle tilfælde af denne klasse er i samme stat.,, trin 3: hvorfor skulle vi bruge den?den mest almindelige eksempel ville være en score - f.eks. en football - score.du ville have en score, klasse, med egenskaber, hometeamscore, og awayteamscore, og en metode, increasescore (team, team).begge teams skal være i stand til at øge deres score, når de foretager et mål, men du kan ikke give hvert hold deres egne score f.eks. du ønsker både at få adgang til og ændre den samme. det er en sag, hvor en singleton er en perfekt løsning, da det kunne fungere som en overordnet instans, at nogen kan få adgang og du vil have et eksempel for alle, så du skal ikke bekymre dig, at hvert hold vil være at ændre et andet punkt.,, trin 4: singleton klasse, lad os begynde at skabe en singleton i as3, men først og fremmest huske på de centrale elementer af en singleton:,, nogen skal have adgang til det. bare en instans kan blive skabt.,, skabe en ny as3 klasse og kalder det singleton.,. (ikke bekendt med klassebaseret koder?tjek det kort intro.), her er den grundlæggende singleton - kode:, pakke (offentlige klasse singleton (menig static var instans: singleton; //vil dette være den enestående instans, der er oprettet ved den klasse, menig static var isokaytocreate: boolean = falske; //denne variabel, vil hjælpe os med at afgøre, om de kan være. oprettet offentlig funktion singleton() (//, hvis vi ikke kan skabe en instans, kast en fejl, så ingen instans skabes, hvis!isokaytocreate) - nye fejl (+ "er en singleton.adgang til ved hjælp af getinstance() ");} //med denne metode, som vi vil skabe, og få adgang til tilfælde af metoden offentlige statisk funktion getinstance(): singleton (//, hvis man ikke skaber f.eks. det om!f.eks. {//tillade oprettelsen af den instans, og efter at den er oprettet, ikke længere skabes isokaytocreate = sandt; f.eks. = nye singleton(); isokaytocreate = falske spor ("singleton instans skabte!");) afkast instans.}}}, løntrin 5: blitz - projektet, så lad os gå og afprøve singleton, skaber en ny flash - fil, der hedder main. ned.om egenskaber panel, der havde klasse også, main,.,, trin 6: skabe en singleton, skabe en ny klasse, der hedder "store" og skabe et tilfælde af singleton ved hjælp af konstruktoeren:, pakke (import flash.display.movieclip; offentlige klasse vigtigste udvider movieclip {offentlige funktion main() {var testsingleton: singleton = nye singleton();}}}, redde og køre den, vil de se, at det er en fejl at fortælle os at bruge getinstance() funktion i stedet, så gå videre og gøre det:, pakke (import flash.display.movieclip; offentlige klasse vigtigste udvider movieclip {offentlige funktion main() {var testsingleton: singleton = singleton. getinstance();}}}, redde og løb, så er der ingen fejl nu, og du kan se i than trøste teksten "singleton instans skabte!", hvilket betyder, at det blev skabt med held. så når du bruger en singleton klasse, du kan bruge nye singleton(), du skal bruge, singleton. getinstance() i stedet.,, trin 7: tilføje ejendomme til klassen, singleton ikke er meget nyttige i minuttet.lad os tilføje en ejendom:, pakke (offentlige klasse singleton (menig static var instans: singleton; //vil dette være den enestående instans, der er oprettet ved den klasse, menig static var isokaytocreate: boolean = falske; //denne variabel, vil hjælpe os med at afgøre, om de f.eks. kan skabes //nye eksempel ejendom: offentlige var. exampleproperty: string = "dette er et eksempel på" offentlig funktion singleton() (//, hvis vi ikke kan skabe en instans, kast en fejl, så ingen instans skabes, hvis!isokaytocreate) - nye fejl (+ "er en singleton.adgang til ved hjælp af getinstance() ");} //med denne metode, som vi vil skabe, og få adgang til tilfælde af metoden offentlige statisk funktion getinstance(): singleton (//, hvis man ikke skaber f.eks. det om!f.eks. {//tillade oprettelsen af den instans, og efter at den er oprettet, ikke længere skabes isokaytocreate = sandt; f.eks. = nye singleton(); isokaytocreate = falske spor ("singleton instans skabte!");) afkast instans.}}}, nu i største. som, du kan få adgang til, testsingleton.exampleproperty, som om det var en normal klasse.prøv at opspore det.,, trin 8: forsøge at skabe en singleton, til at bevise, at den singleton gør, hvad den skal gøre, skabe en singleton og ændre eksempel tilhører en af dem:, pakke (import flash.display.movieclip; offentlige klasse vigtigste udvider movieclip {offentlige funktion main() {var testsingleton: singleton = singleton. getinstance(), var anothersingleton: singleton = singleton. getinstance(); anothersingleton.exampleproperty = "dette er fastsat i anothersingleton" spor (testsingleton.exampleproperty, anothersingleton. exampleproperty)}}}, hvad tror du, der vil ske?det virker, hvis de skaber singleton variabler i forskellige klasser, konkluderes, at den singleton mønster kan anvendes en kode, og jeg anbefaler det, hvis du skal bruge et eksempel på en klasse, da det giver en bedre kontrol med det.jeg håber, du kan lide det her hurtigt tip, tak for det!goddag, eduardo.




Previous:
Next Page: