Creative Saplings

GeeksforGeeks (Deutsch)

September 29, 2020
No Comments

Es handelt sich um ein kreatives Entwurfsmuster, das die Erstellung eines Objekts beschreibt. Das Factory-Design-Muster besagt, dass eine Schnittstelle (eine Java-Schnittstelle oder eine abstrakte Klasse) definiert wird und die Unterklassen entscheiden können, welches Objekt instanziiert werden soll. Mit der Factory-Methode in der Schnittstelle kann eine Klasse die Instanziierung auf eine oder mehrere konkrete Unterklassen verschieben. Da diese Entwurfsmuster über die Instanziierung eines Objekts sprechen, fällt es unter die Kategorie des kreativen Entwurfsmusters. Wenn wir den Namen Factory-Methode bemerken, bedeutet dies, dass es eine Methode gibt, die eine Factory ist, und im Allgemeinen sind Fabriken mit kreativen Dingen beschäftigt, und hier wird ein Objekt erstellt. Dies ist eine der besten Möglichkeiten, ein Objekt zu erstellen, bei dem die Objekterstellungslogik für den Client verborgen ist. Schauen wir uns nun die Implementierung an.

Implementierung:
1. Definieren Sie eine Factory-Methode innerhalb einer Schnittstelle.
2. Lassen Sie die Unterklasse die obige Factory-Methode implementieren und entscheiden, welches Objekt erstellt werden soll.
In Java sind Konstruktoren nicht polymorph, aber indem wir der Unterklasse erlauben, ein Objekt zu erstellen, fügen wir der Instanziierung polymorphes Verhalten hinzu. Kurz gesagt, wir versuchen, Pseudo-Polymorphismus zu erreichen, indem wir die Unterklasse entscheiden lassen, was erstellt werden soll. Daher wird diese Factory-Methode auch als

virtueller Konstruktor bezeichnet. Versuchen wir, es mit einem Echtzeitproblem und einigen Codierungsübungen zu implementieren.

Problemstellung:
Wir möchten einen Benachrichtigungsdienst per E-Mail, SMS und Push-Benachrichtigung implementieren. Versuchen wir, dies mithilfe des Entwurfsmusters für Factory-Methoden zu implementieren. Zunächst werden wir hierfür ein UML-Klassendiagramm entwerfen.

Im obigen Klassendiagramm haben wir eine Schnittstelle namens Notification, und drei konkrete Klassen implementieren die Notification-Schnittstelle. Eine Factory-Klasse NotificationFactory wird erstellt, um ein Notification-Objekt abzurufen. Lassen Sie uns jetzt in die Codierung springen.

Benachrichtigungsschnittstelle erstellen

Java

public interface Notification {
void notifyUser();
}



Hinweis – Die obige Schnittstelle kann auch als abstrakte Klasse erstellt werden.
Erstellen Sie alle Implementierungsklassen

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" );
}
}



Erstellen Sie eine Factory-Klasse NotificationFactory.java, um eine konkrete Klasse zu instanziieren.

Verwenden wir nun die Factory-Klasse, um ein Objekt der konkreten Klasse zu erstellen und abzurufen, indem wir einige Informationen übergeben.

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

Echtzeitbeispiele
Dieses Entwurfsmuster wurde in JDK häufig verwendet, z. B.
1. Die Methode getInstance () von java.util.Calendar, NumberFormat und ResourceBundle verwendet das Entwurfsmuster der Factory-Methode.
2. Alle Wrapper-Klassen wie Integer, Boolean usw. in Java verwenden dieses Muster, um die Werte mithilfe der valueOf () -Methode auszuwerten.
3. java.nio.charset.Charset.forName (), java.sql.DriverManager # getConnection (), java.net.URL.openConnection (), java.lang.Class.newInstance (), java.lang.Class.forName () sind einige Beispiele, bei denen das Entwurfsmuster für Factory-Methoden verwendet wurde.
Fazit
Bisher haben wir gelernt, was das Entwurfsmuster für Factory-Methoden ist und wie es implementiert wird. Ich glaube, jetzt haben wir ein gutes Verständnis für den Vorteil dieses Entwurfsmechanismus.

Artikel-Tags:

Articles
Previous Post

SC-Bildprojekt

Next Post

Unehrliche Abe: Warum Sie den Penny-Test nicht zur Überprüfung der Reifenprofiltiefe verwenden sollten

Schreibe einen Kommentar Antworten abbrechen

Neueste Beiträge

  • Beste Fotografieschulen der Welt, 2020
  • Souveräne Bürger bringen ihre regierungsfeindliche Philosophie auf die Straße
  • Leitfaden für Stuckreparaturkosten
  • Muckrakers (Deutsch)
  • Präzisionsonkologie

Archive

  • Februar 2021
  • Januar 2021
  • Dezember 2020
  • November 2020
  • Oktober 2020
  • September 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.