Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java Singleton-klasse

Java Singleton-klasse

In deze tutorial leren we Singleton Design Pattern in Java te implementeren met behulp van voorbeelden.

In Java is Singleton een ontwerppatroon dat ervoor zorgt dat een klasse maar één object kan hebben.

Om een ​​singleton-klasse te maken, moet een klasse de volgende eigenschappen implementeren:

  • Maak een private constructor van de klasse om het maken van objecten buiten de klasse te beperken.
  • Maak een private attribuut van het klassetype dat verwijst naar het enkele object.
  • Maak een public static methode waarmee we het object dat we hebben gemaakt, kunnen maken en openen. Binnen de methode zullen we een voorwaarde creëren die ons verhindert om meer dan één object te creëren.

Voorbeeld:Java Singleton Class-syntaxis

class SingletonExample {

   // private field that refers to the object
   private static SingletonExample singleObject;
                                              
   private SingletonExample() {
      // constructor of the SingletonExample class
   }

   public static SingletonExample getInstance() {
      // write code that allows us to create only one object
      // access the object as per our need
   }
}

In het bovenstaande voorbeeld,

  • private static SingletonExample singleObject - een verwijzing naar het object van de klasse.
  • private SingletonExample() - een privéconstructor die het maken van objecten buiten de klasse beperkt.
  • public static SingletonExample getInstance() - deze methode retourneert de verwijzing naar het enige object van de klasse. Sinds de methode statisch , het is toegankelijk via de klassenaam.

Gebruik van Singleton in Java

Singletons kunnen worden gebruikt tijdens het werken met databases. Ze kunnen worden gebruikt om een ​​verbindingspool te maken om toegang te krijgen tot de database, terwijl dezelfde verbinding voor alle clients wordt hergebruikt. Bijvoorbeeld,

class Database {
   private static Database dbObject;

   private Database() {      
   }

   public static Database getInstance() {

      // create object if it's not already created
      if(dbObject == null) {
         dbObject = new Database();
      }

       // returns the singleton object
       return dbObject;
   }

   public void getConnection() {
       System.out.println("You are now connected to the database.");
   }
}

class Main {
   public static void main(String[] args) {
      Database db1;

      // refers to the only object of Database
      db1= Database.getInstance();
      
      db1.getConnection();
   }
}

Wanneer we het programma uitvoeren, is de uitvoer:

You are now connected to the database.

In ons bovenstaande voorbeeld,

  • We hebben een singleton-klasse gemaakt Database .
  • Het dbObject is een klassetype veld. Dit verwijst naar het object van de klasse Database .
  • De privéconstructor Database() voorkomt het maken van objecten buiten de klas.
  • De statische klassetypemethode getInstance() geeft de instantie van de klasse terug aan de buitenwereld.
  • In de Hoofd class, we hebben class type variabele db1 . We bellen getInstance() met behulp van db1 om het enige object van de Database te krijgen .
  • De methode getConnection() is alleen toegankelijk via het object van de Database .
  • Sinds de Database kan slechts één object hebben, alle clients hebben toegang tot de database via een enkele verbinding.

Singleton is een ontwerppatroon in plaats van een functie die specifiek is voor Java. Een ontwerppatroon is als onze codebibliotheek die verschillende coderingstechnieken bevat die door programmeurs over de hele wereld worden gedeeld.


Het is belangrijk op te merken dat er maar een paar scenario's (zoals loggen) zijn waarin singletons zinvol zijn. We raden je aan om singletons helemaal te vermijden als je niet zeker weet of je ze wel of niet moet gebruiken. Meer informatie:wat is er zo erg aan Singleton?


Java

  1. Java laatste trefwoord
  2. Java-instantie van Operator
  3. Java-erfenis
  4. Java geneste statische klasse
  5. Java anonieme klasse
  6. Java-reflectie
  7. Java ObjectOutputStream-klasse
  8. Java-generieken
  9. Java-bestandsklasse
  10. Java - Object en klassen
  11. Java - Serialisatie