Creative Saplings

GeeksforGeeks (Italiano)

Settembre 29, 2020
No Comments

È un modello di progettazione di creazione che parla della creazione di un oggetto. Il modello di progettazione di fabbrica dice che definisce un’interfaccia (un’interfaccia java o una classe astratta) e lascia che le sottoclassi decidano quale oggetto istanziare. Il metodo factory nell’interfaccia consente a una classe di rinviare l’istanza a una o più sottoclassi concrete. Poiché questo design pattern parla di istanziazione di un oggetto e quindi rientra nella categoria del design pattern creazionale. Se notiamo il nome metodo Factory, significa che esiste un metodo che è una fabbrica, e in generale le fabbriche sono coinvolte con cose creazionali e qui con questo viene creato un oggetto. È uno dei modi migliori per creare un oggetto in cui la logica di creazione dell’oggetto è nascosta al client. Ora diamo un’occhiata all’implementazione.

Implementazione:
1. Definisci un metodo factory all’interno di un’interfaccia.
2. Lascia che la sottoclasse implementi il metodo factory di cui sopra e decida quale oggetto creare.
In Java i costruttori non sono polimorfici, ma consentendo alla sottoclasse di creare un oggetto, stiamo aggiungendo un comportamento polimorfico all’istanza. In breve, stiamo cercando di ottenere lo pseudo polimorfismo lasciando che la sottoclasse decida cosa creare, e quindi questo metodo Factory è anche chiamato

costruttore virtuale. Proviamo a implementarlo con un problema in tempo reale e qualche esercizio di codifica.

Dichiarazione del problema:
considera che vogliamo implementare un servizio di notifica tramite e-mail, SMS e notifica push. Proviamo a implementarlo con l’aiuto del modello di progettazione del metodo di fabbrica. Per prima cosa progetteremo un diagramma delle classi UML per questo.

Nel diagramma delle classi sopra abbiamo un’interfaccia chiamata Notification, e tre classi concrete stanno implementando l’interfaccia Notification. Una NotificationFactory di classe factory viene creata per ottenere un oggetto Notification. Passiamo ora alla codifica.

Crea interfaccia di notifica

java

public interface Notification {
void notifyUser();
}



Nota – L’interfaccia sopra potrebbe essere creata anche come classe astratta.
Crea tutte le classi di implementazione

SMSNotification.java
java

public class SMSNotification implements Notification {
@Override
public void notifyUser()
{
System.out.println( "Sending an SMS notification" );
}
}


EmailNotification.java
java

public class EmailNotification implements Notification {
@Override
public void notifyUser()
{
System.out.println( "Sending an e-mail notification" );
}
}



PushNotification.java
java

public class PushNotification implements Notification {
@Override
public void notifyUser()
{
System.out.println( "Sending a push notification" );
}
}



Crea una classe factory NotificationFactory.java per istanziare la classe concreta.

Ora usiamo la classe factory per creare e ottenere un oggetto di classe concreta passando alcune informazioni.

java

public class NotificationService {
public static void main(String args)
{
NotificationFactory notificationFactory = new NotificationFactory();
Notification notification = notificationFactory.createNotification( "SMS" );
notification.notifyUser();
}
}



Output : Sending an SMS notification

Esempi in tempo reale
Questo modello di progettazione è stato ampiamente utilizzato in JDK, ad esempio
1. Il metodo getInstance () di java.util.Calendar, NumberFormat e ResourceBundle utilizza il modello di progettazione del metodo di fabbrica.
2. Tutte le classi wrapper come Integer, Boolean ecc. In Java utilizzano questo modello per valutare i valori utilizzando il metodo valueOf ().
3. java.nio.charset.Charset.forName (), java.sql.DriverManager # getConnection (), java.net.URL.openConnection (), java.lang.Class.newInstance (), java.lang.Class.forName () sono alcuni degli esempi in cui è stato utilizzato il design pattern del metodo factory.
Conclusione
Finora abbiamo imparato cos’è il design pattern del metodo Factory e come implementarlo. Credo che ora abbiamo una buona comprensione dei vantaggi di questo meccanismo di progettazione.

Tag degli articoli:

Articles
Previous Post

SC Picture Project (Italiano)

Next Post

Abe disonesto: perché non dovresti usare il Penny Test per controllare la profondità del battistrada degli pneumatici

Lascia un commento Annulla risposta

Articoli recenti

  • Best Photography Schools In The World, 2020
  • I cittadini sovrani portano la loro filosofia antigovernativa sulle strade
  • Guida ai costi di riparazione dello stucco
  • Muckrakers (Italiano)
  • Oncologia di precisione

Archivi

  • Febbraio 2021
  • Gennaio 2021
  • Dicembre 2020
  • Novembre 2020
  • Ottobre 2020
  • Settembre 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.