Klasse :: Strongsleton

Klasse :: StrongSingleton is een sterkere en veiliger Singleton Base-klasse.
Download nu

Klasse :: Strongsleton Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Stevan Little
  • Uitgever website:
  • http://search.cpan.org/~stevan/

Klasse :: Strongsleton Tags


Klasse :: Strongsleton Beschrijving

Klasse :: Strongsingleton is een sterkere en veiliger Singleton Base-klasse. Klasse :: StrongSingleton is een sterkere en veiliger Singleton Base Class.Synopsis Package My :: Singleton :: Klasse; Gebruik basis QW (Klasse :: StrongSingleton); subnieuw {mijn ($ klasse,% my_params) = @_; # Creëer ons object-exemplaar mijn $ exemplaar = {% my_params}; zegen ($ exemplaar, $ klasse); # en initialiseren als een singleton $ exemplaar -> _ init_strongsingleton (); retourneer $ exemplaar; } 1; # Later in je code ... # Maak het eerste exemplaar van onze klasse mijn $ exemplaar = MY :: Singleton :: Class-> Nieuw (Param => "Value"); # Probeer opnieuw een 'nieuwe' één te maken, en # je eindigt met dezelfde instantie, niet # een nieuwe mijn $ exege2 = mijn :: singleton :: class-> nieuw (param => "andere waarde"); # Retourneren van 'instance' Retourneert de Singleton # -instantie verwacht mijn $ exemplate3 = MY :: Singleton :: Class-> Instantie (); # Hoewel zelden nodig is, als je # hebt, kun je de singleton # vernietigen, hetzij door het exemplaar $ exemplaar-> vernietigen (); # of door de klas Mijn :: Singleton :: Klasse-> Vernietig (); # Natuurlijk gaat het ervan uit dat je # niet overrijdt de bestemming zelf # belt ook 'instantie' voordat je 'nieuwe' # belt, een nieuwe Singleton-instantie terugkeert Mijn $ exemplaar = MY :: Singleton :: Class-> Exemplaar (); Deze module is een alternatief voor de klas :: Singleton en Class :: Skabsingleton, en biedt een veiliger Singleton-klasse omdat het stappen onderneemt om de mogelijkheid te voorkomen dat meerdere gevallen en / of het overschrijven van Singleton-exemplaren te voorkomen. Zie voor een gedetailleerde vergelijking de sectie "Zie ook". Hier is een beschrijving van hoe het allemaal werkt. Ten eerste creëert de gebruiker het eerste singleton-exemplaar van de klas op de normale manier. Mijn $ Obj = My :: Singleton :: Klasse-> Nieuwe ("Variabele", "Parameter"); Dit exemplaar wordt vervolgens opgeslagen in een lexicaal geschergde variabele binnen de klasse :: StrongSingleton-pakket. Dit voorkomt dat de variabele wordt geopend door alles behalve methoden van de Klasse :: StrongSingleton-pakket. Ook op dit punt wordt de nieuwe methode voor de klas opgeheven, zodat deze altijd de Singleton-instantie zal retourneren. Dit voorkomt dat een accidentele overschrijving van de Singleton-instantie. Dit betekent dat een van de volglijnen van code allemaal hetzelfde exemplaar produceren: mijn $ instantie = $ OBJ-> instantie (); mijn $ exemplaar = mijn :: singleton :: klas-> instantie (); mijn $ exemplaar = $ OBJ-> NIEUW (); Mijn $ exemplaar = MY :: Singleton :: Class-> Nieuw (); persoonlijk zie ik dit een verbetering ten opzichte van de gebruikelijke bende van vier stijl singletons die het gebruik van de nieuwe methode volledig ontmoedigt. Via deze methode kan een gebruiker in staat zijn om de Singleton-klasse op een normale manier te gebruiken, niet te weten dat het eigenlijk een singleton is. Dit kan handig zijn als uw ontwerp verandert en u de klas niet langer als een singleton meer nodig hebt. Vereisten: · Perl


Klasse :: Strongsleton Gerelateerde software