Hjem Udvikling Hvad er singleton? - definition fra techopedia

Hvad er singleton? - definition fra techopedia

Indholdsfortegnelse:

Anonim

Definition - Hvad betyder Singleton?

En singleton er en klasse, der kun tillader at oprette en enkelt instans af sig selv og giver adgang til den oprettede instans. Det indeholder statiske variabler, der kan rumme unikke og private tilfælde af sig selv. Det bruges i scenarier, når en bruger ønsker at begrænse instantiering af en klasse til kun et objekt. Dette er normalt nyttigt, når der kræves et enkelt objekt for at koordinere handlinger på tværs af et system.


Singleton-mønsteret bruges i programmeringssprog som Java og .NET til at definere en global variabel. Et enkelt objekt, der bruges på tværs af systemer, forbliver konstant og skal defineres kun én gang snarere end mange gange.

Techopedia forklarer Singleton

En singleton er beregnet til kun at give et enkelt tilfælde af sig selv, mens det letter et globalt adgangspunkt. Implementering af et singletonmønster involverer oprettelse af en klasse med en metode, der opretter en ny forekomst af klassen. For at implementere et singleton-mønster skal principperne om enkelt instans og global adgang være opfyldt. Singleton-klassen er som et globalt depot for et eksempel på sig selv, hvilket gør konstruktøren privat. Derfor kan en instans uden for klassen overhovedet ikke oprettes, og en singleton kan kun indeholde et eksempel. En singleton-klasse instantierer sig selv og vedligeholder den instans på tværs af systemer.


Abstrakte fabriks-, builder- og prototypemønstre kan bruge singletons. Fasadeobjekter og statiske genstande er ofte singletoner. Singleton-implementering kræver en mekanisme, hvorigennem et klassemedlem kan tilgås uden at skulle oprette et klasseobjekt og holde fast ved værdien af ​​klassemedlemmer blandt klasseobjekter. Trinene involveret i oprettelsen af ​​en singleton er som følger:

  1. Konstruktøren er gjort privat. Dette tillader kun at klassen har adgang til singleton.
  2. Eksempel:

    klasse testdata

    {

    Privat testdata ()

    {

    // … no-op for en singleton

  3. En enkelt intern forekomst af klassen oprettes ved hjælp af en metode. Metoden kaldes et eksempel i dette eksempel. Metoden “instans” bruges til at initialisere klassen for at få adgang til en enkelt instans. Instansmetoden er markeret som statisk i dette eksempel for at give alle trådene ensartet adgang. Uden for oprettelsen af ​​instanser bruges "lock" -sætningen til at kontrollere adgang til flere tråde. Dette låser oprettelsen af ​​forekomsten til en enkelt tråd.


    Eksempel:


    // Lat oprettelse af singleton intern instans

    Offentlige statiske testdata Forekomst

    {

    {

    Lås (type (testdata))

    {

    Hvis (_instance == null)

    _instance = testdata ();

    }

    Retur _instance;

    }

    }

Hvad er singleton? - definition fra techopedia