design mønstre i wordpress: singleton -

, design mønstre i wordpress: singleton -,,,,, 8,,,,,,,,, 11,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss. denne post er en del af en serie kaldet design mønstre i wordpress. design mønstre i wordpress: en introductiondesign mønstre i wordpress: simpel fabrik mønster i denne serie, vi ser på betydningen af former for design og den rolle, som de spiller i wordpress udvikling. i den første post i serien, vi tog en højtstående undersøgelse og gennemgik de observatør mønster for at se, hvordan det er muligt at registrere forskellige funktioner eller genstande med visse begivenheder, der indtræffer i livscyklussen for en ansøgning, i denne post, hvor det kommer til at tage et kig på singleton, specifikt mønster. skal vi tage et kig på definitionen af mønstret, og hvordan det fungerer, vi skal gennemgå endiagram over, hvad opbygningen af det mønster, ser det ud til, at vi tager en prøve - kode for det mønster, og så vil vi diskutere fordelene ved det mønster, som det vedrører wordpress udvikling.,, singleton - wikipedia definerer singleton - som følger:,, softwareudvikling, singleton mønster er et design mønster, der begrænser instantiation af en klasse til et objekt, måske en enklere måde at forklare det mønster, er dette: singleton - sikrer, at en gruppe kan kun have én instans, og det giver en fælles måde at hente et tilfælde af sig selv, hvorfor dette spørgsmål i wordpress?for så vidt angår tema udvikling angår, er jeg personligt ser ikke meget til brug for det, medmindre du er sammenkoblingen af en type hjælper klasse eller bibliotek med temaet, men hvis du bygger plugins, så det kan være særdeles nyttig. lige nu er der kun en håndfuld måder at instantiate plugins (undtagen widgets - det er et andet emne) inden for wordpress:,, du kan instantiate det stik af på bunden af din stik af sagen, men det kan føre til en forældreløs genstand, du kan stikke det stik af i folkesundhedsprogrammet, $globals, indsamling, men det kan være farligt, som du kan smadre noget allerede der findes eller er det at gøre indsamlingen meget større, hvis du instantiate med, siger, at hver side belastning og data er ikke vedmedmindre du sandt og hammer - databasen, hver gang de stik af er instantierede,, ingen af dem er særligt  , godt, strategier (selv om du kunne få en sag, som de arbejder). men vi er mere end bare at få noget til at virke, ikke?vi vil have det til at fungere, og vi ønsker en elegant løsning på problemet.det er hvor former for design - og mere specifikt den singleton - - spiller ind.,, hvad det ligner, lad os se på et billede af singleton mønster.se nedenstående diagram, så kan vi snakke om detaljerne, når billedet:,,, så her er hovedtrækkene i singleton mønster:,, der er en privat, statisk instans variable defineres i de attributter, der anvendes til at fastholde en henvisning til den klasse, de pågældende er blevet karakteriseret som private. der er en offentlig statisk funktion ved navn, get_instance, som anvendes til at vende tilbage til et tilfælde af klassen, intet  , for kompliceret, men jeg tror, at den kode for singleton mønster går langt for at gøre det lidt mere klart, så lad os gøre det nu: klasse foo {* -------------------------------------------- * * * * * * * * * * * *) -------------------------------------------- //* * henviser til en enkelt instans af denne klasse.* /menig static $instans = ugyldig; /* * * * * * * * -------------------------------------------- konstruktøren -------------------------------------------- * /* * * skaber eller vender tilbage til et tilfælde af denne klasse.* * @ tilbage foo en enkelt instans af denne klasse.* /offentlige statisk funktion get_instance() (hvis (null = = selvstændig: $instans) (self -:: $instans = nye selvstændige;} tilbage selv: $instans.} //ende get_instance; /* * * initializes det stik af med lokalisering, filtre og forvaltning.* /privat funktion __construct() {} //ende konstruktøren /* * * * * * * * * * * * * -------------------------------------------- funktioner -------------------------------------------- /) //ende klasse fu: get_instance();, der er sket, en masse af kode tilbage af ovennævnte klasse, men mønstret er principper fortsat. se, at vi har en privat statisk instans variabel, der er anvendt til at henvise til denne klasse.det er især i, get_instance, funktion, mens den pågældende er blevet karakteriseret som private. typisk, når instantiating klasser, konstruktøren er den funktion, der kaldes, når vi nulstille klasser; men i dette tilfælde, konstruktøren er mærket som private. hvad vil du?se, at vi har en offentlig, get_instance, funktion lige over entreprenøren.denne funktion er bogstaveligt talt kontrol for at se, om de statiske instans variabel er ugyldig, og, i bekræftende fald, skaber en ny instans af klasse (hvilket kan gøre, da det er inden for rammerne af klasse); ellers er det tilbage i den nuværende situation. det er ikke mere end en enkelt instans af en klasse er oprettet. endelig bemærker, at vi instantiate klasse, ikke med en standard, nye, nøgleord, men ved at kræve, get_instance,.ikke kun det, men vi får også fremtidige henvisninger til den klasse, ved at anvende den samme metode, så f.eks. lad os sige, at du arbejder i en anden model, og du er nødt til at ringe til en funktion - sige, bar(), - der findes i din stik af.i det tilfælde, at du ville gøre noget som dette: $foo foo: get_instance(); = $foo - > bar();, flot, ikke?,, fordelene ved singleton mønster, til trods for at vi har dækket de singleton - et arkitektonisk og en praktisk synsvinkel, vi har faktisk ikke talt om fordelene ved mønster. generelt:,, singleton - forhindrer andre genstande eller kunder fra visse tilfælde af klassen.det sikrer, at der kun er en kopi af de data, der opbevares på et givet tidspunkt.alle adgang til det formål er således den fælles instans. vi har en bred vifte af fleksibilitet, når det gælder gennemførelsen, fordi vi rent faktisk kan påvirke instantiation proces (selv om det er lidt uden for anvendelsesområdet for denne bestemte post).,, måske den største ulempe ved mønstret er manglende klarhed, at de stik af rent faktisk anvender mønstret.hvis nogen forsøger at instantiate klasse, instantiation vil mislykkes, fordi der ikke er offentlig konstruktøren. som sådan dokumentation er afgørende.,, konklusioner, om du har set dem før, eller er det din første omgang i former for design, singleton mønster er velsagtens den mest bestemt mønster, der er.det er let at gennemføre, og det er en væsentlig kilde til funktioner, når de gennemføres korrekt, navnlig da det vedrører web ansøgninger. i den næste stilling, vi skal se på et andet mønster - simpel fabrik - - som er nyttig, når man har et antal timer, som hver har et unikt formål, og der vil være behov for visse kriterier baseret på input.

The Singleton Pattern



Previous:
Next Page: