Creative Saplings

GeeksforGeeks (Magyar)

szeptember 29, 2020
No Comments

Ez egy kreatív tervezési minta, amely egy objektum létrehozásáról beszél. A gyári tervezési minta azt mondja, hogy definiáljon egy interfészt (java felület vagy absztrakt osztály), és hagyja, hogy az alosztályok döntsék el, melyik objektumot példányosítsák. A felület gyári módja lehetővé teszi az osztály számára, hogy egy vagy több konkrét alosztályra halasszák a példányosítást. Mivel ezek a tervezési minták egy tárgy példányosításáról beszélnek, és így a kreatív tervezési minta kategóriájába tartozik. Ha észrevesszük a Gyári módszer nevet, ez azt jelenti, hogy van egy módszer, amely gyár, és általában a gyárak kreatív dolgokkal foglalkoznak, és itt ezzel egy objektum jön létre. Ez az egyik legjobb módszer egy objektum létrehozására, ahol az objektum létrehozási logikája el van rejtve az ügyfél előtt. Most nézzük meg a megvalósítást.

Megvalósítás:
1. Határozzon meg egy gyári módszert az interfészen belül.
2. Hagyja, hogy az alosztály megvalósítsa a fenti gyári módszert, és döntse el, melyik objektumot hozza létre.
A Java-ban a konstruktorok nem polimorfak, de lehetővé téve az alosztály számára az objektum létrehozását, hozzáadjuk a polimorf viselkedést a példányosításhoz. Röviden: Pszeudo polimorfizmust próbálunk elérni azáltal, hogy hagyjuk, hogy az alosztály döntse el, mit hoz létre, ezért ezt a Factory-módszert

Virtuális konstruktornak is nevezik. Próbáljuk valós idejű problémával és néhány kódolási gyakorlattal megvalósítani.

Hibabejelentés:
Fontolja meg, hogy értesítési szolgáltatást szeretnénk létrehozni e-mailben, SMS-ben és push értesítés útján. Próbáljuk meg ezt megvalósítani a gyári módszer tervezési mintájának segítségével. Először ehhez tervezünk egy UML osztálydiagramot.

A fenti osztálydiagramon van egy Értesítés nevű felületünk, és három konkrét osztály hajtja végre az Értesítési felületet. A NotificationFactory gyári osztály jön létre, hogy értesítési objektumot kapjon. Ugorjunk most bele a kódolásba.

Értesítési felület létrehozása

java

public interface Notification {
void notifyUser();
}



Megjegyzés – A fenti felület absztrakt osztályként is létrehozható.
Az összes megvalósítási osztály létrehozása

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



Hozzon létre egy gyári NotificationFactory.java osztályt a konkrét osztály példányosításához.

Most a gyári osztály segítségével hozzunk létre és szerezzünk be konkrét osztályú objektumot, átadva néhány információt.

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

Valós idejű példák
Ezt a tervezési mintát széles körben használták a JDK-ban, például
1. A java.util.Calendar, a NumberFormat és a ResourceBundle getInstance () metódusa a gyári módszer tervezési mintáját használja.
2. A Java összes burkolóosztálya, például az Integer, a Boolean stb., Ezt a mintát használja az értékek értékének kiértékeléséhez valueOf () módszerrel.
3. java.nio.charset.Charset.forName (), java.sql.DriverManager # getConnection (), java.net.URL.openConnection (), java.lang.Class.newInstance (), java.lang.Class.A forName () néhány olyan példa, ahol a gyári módszer tervezési mintáját alkalmazták.
Következtetés
Eddig megtanultuk, mi a gyári módszer tervezési mintája és hogyan kell azt megvalósítani. Úgy gondolom, hogy most már tisztában vagyunk a tervezési mechanizmus előnyeivel.

Címkék:

Articles
Previous Post

SC képprojekt

Next Post

Becstelen Abe: Miért ne használd a Penny tesztet a gumiabroncs futófelületének mélységének ellenőrzésére

Vélemény, hozzászólás? Kilépés a válaszból

Legutóbbi bejegyzések

  • A világ legjobb fotóiskolái, 2020
  • A szuverén polgárok kormányellenes filozófiájukat viszik az utakra
  • Stukkó javítási költség útmutató
  • Muckrakers (Magyar)
  • Precíziós onkológia

Archívum

  • 2021 február
  • 2021 január
  • 2020 december
  • 2020 november
  • 2020 október
  • 2020 szeptember
  • 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.