Creative Saplings

GeeksforGeeks (Nederlands)

september 29, 2020
No Comments

Het is een creatief ontwerppatroon dat spreekt over het maken van een object. Het fabrieksontwerppatroon zegt dat het een interface definieert (een Java-interface of een abstracte klasse) en de subklassen laat beslissen welk object wordt geïnstantieerd. Met de fabrieksmethode in de interface kan een klasse de instantiatie uitstellen naar een of meer concrete subklassen. Omdat deze ontwerppatronen spreken over concretisering van een object, valt het onder de categorie van creatief ontwerppatroon. Als we de naam Factory-methode opmerken, betekent dit dat er een methode is die een fabriek is, en in het algemeen zijn fabrieken betrokken bij creaties en hier wordt hiermee een object gemaakt. Het is een van de beste manieren om een object te maken waarbij de logica voor het maken van objecten voor de klant verborgen is. Laten we nu eens kijken naar de implementatie.

Implementatie:
1. Definieer een fabrieksmethode in een interface.
2. Laat de subklasse de bovenstaande fabrieksmethode implementeren en beslissen welk object er moet worden gemaakt.
In Java zijn constructors niet polymorf, maar door subklasse toe te staan een object te creëren, voegen we polymorf gedrag toe aan de instantiatie. Kortom, we proberen pseudo-polymorfisme te bereiken door de subklasse te laten beslissen wat er gemaakt moet worden, en daarom wordt deze Factory-methode ook wel

Virtuele constructor genoemd. Laten we proberen het te implementeren met een real-time probleem en wat programmeeroefening.

Probleemstelling:
Bedenk dat we een meldingsservice willen implementeren via e-mail, sms en pushmeldingen. Laten we proberen dit te implementeren met behulp van het ontwerppatroon van de fabrieksmethode. Hiervoor gaan we eerst een UML-klassendiagram ontwerpen.

In het bovenstaande klassendiagram hebben we een interface genaamd Notification, en drie concrete klassen implementeren de Notification-interface. Er wordt een fabrieksklasse NotificationFactory gemaakt om een Notification-object op te halen. Laten we nu naar de codering gaan.

Maak een meldingsinterface

java

public interface Notification {
void notifyUser();
}



Opmerking – Bovenstaande interface kan ook als een abstracte klasse worden gemaakt.
Maak alle implementatieklassen

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



Maak een fabrieksklasse NotificationFactory.java om de concrete klasse te instantiëren.

Laten we nu de fabrieksklasse gebruiken om een object van concrete klasse te maken en te krijgen door wat informatie door te geven.

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

Real-time voorbeelden
Dit ontwerppatroon wordt veel gebruikt in JDK, zoals
1. De methode getInstance () van java.util.Calendar, NumberFormat en ResourceBundle gebruikt het ontwerppatroon van de fabrieksmethode.
2. Alle wrapper-klassen zoals Integer, Boolean enz. In Java gebruiken dit patroon om de waarden te evalueren met de methode valueOf ().
3. java.nio.charset.Charset.forName (), java.sql.DriverManager # getConnection (), java.net.URL.openConnection (), java.lang.Class.newInstance (), java.lang.Class.forName () zijn enkele van de voorbeelden waarin het ontwerppatroon van de fabrieksmethode is gebruikt.
Conclusie
Tot dusver hebben we geleerd wat het ontwerppatroon van de fabrieksmethode is en hoe het te implementeren. Ik denk dat we nu een redelijk begrip hebben van het voordeel van dit ontwerpmechanisme.

Artikeltags:

Articles
Previous Post

SC Picture Project

Next Post

Oneerlijke Abe: waarom u de Penny-test niet zou moeten gebruiken om de profieldiepte van banden te controleren

Geef een reactie Antwoord annuleren

Meest recente berichten

  • Beste fotografiescholen ter wereld, 2020
  • Soevereine burgers brengen hun antiregeringsfilosofie naar de weg
  • Kostenhandleiding voor stucwerkreparatie
  • Muckrakers
  • Precisie-oncologie

Archief

  • februari 2021
  • januari 2021
  • december 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.