In questo post/sessione parleremo del design pattern Singleton in Apex e di quando utilizzare il design pattern Singleton in Salesforce. Questo pattern limita l’istanziazione di una classe a una “singola” istanza solo all’interno di un singolo contesto di transazione. Consultate la nostra formazione completa sui design pattern di Apex per saperne di più.

Cos’è il Singleton Design Pattern in Apex

Il pattern Singleton è un pattern di creazione, che aiuta a istanziare gli oggetti in un modo particolare. Consente l’esistenza di una sola istanza di un oggetto, ma tutti hanno accesso globale a quell’oggetto. I singleton possono contribuire a migliorare le prestazioni e a ridurre l’ingombro della memoria.

Il design pattern Singleton limita l’istanziazione di una classe e garantisce l’esistenza di una sola istanza della classe per transazione in apex. La classe Singleton deve fornire un punto di accesso pubblico per ottenere l’istanza della classe per qualsiasi transazione.

Implementare il Singleton pattern in Apex

Dobbiamo considerare i punti seguenti durante l’implementazione del pattern singleton in Apex.

  • Private Constructor : Creare un costruttore privato per limitare l’istanziazione della classe apex da altre classi.
  • Private static variable: creare una variabile statica privata della stessa classe, che è l’unica istanza della classe.
  • Public method getInstance(): Creare un metodo statico pubblico che restituisca l’istanza della classe. Il metodo getInstance inizierà l’istanza della classe solo se non esiste.

Diagramma della classe Singleton

Quando dovremmo usare Singleton Design Pattern?

Il pattern Singleton può essere utilizzato per le implementazioni relative alla registrazione e alla cache. Questo pattern può essere utilizzato anche con altri modelli di progettazione, come Abstract Factory e altri ancora.

Singleton vs. Static

Qual è la differenza tra Singleton e Static?

Singleton Static
I singleton possono implementare le interfacce ed estendere le classi i metodi static non possono
I singleton possono essere istanziati immediatamente o caricati gradualmente. Gli statics devono essere istanziati al momento del caricamento
I singleton seguono più da vicino i principi dell’orientamento agli oggetti I singleton seguono i principi orientati agli oggetti più da vicino rispetto agli staics.

Esempio di design pattern singleton in Apex

Ecco un esempio di design pattern Singleton in Salesforce.

public with sharing class Singleton {
    
    //private static instance of the class
    private static Singleton instance = null;
    
    //private constructor to avoid creating an instance

    private Singleton(){}
    
    public static Singleton getInstance(){
           if(instance == null){
              instance = new Singleton();
            }
        return instance;
    }
}

In questo schema, l’istanza viene istanziata solo quando si chiama il metodo getInstance(). Questo ridurrà lo sforzo di caricare grandi risorse al momento dell’inizializzazione. Come il codice seguente:

Singleton instance = Singleton.getInstance();

Video di Singleton Design pattern in Apex

Sintesi

Spero che questo articolo vi abbia aiutato a capire il design pattern Singleton in Salesforce.

 

 

Fonte: tradotto da ApexHours

Share:

administrator