Creative Saplings

GeeksforGeeks (Polski)

29 września, 2020
No Comments

Jest to kreacyjny wzorzec projektowy, który mówi o tworzeniu obiektu. Wzorzec projektowy fabryki mówi, że definiuje interfejs (interfejs Java lub klasa abstrakcyjna) i pozwala podklasom zdecydować, który obiekt ma zostać utworzony. Metoda fabryki w interfejsie pozwala klasie odroczyć tworzenie instancji do jednej lub kilku konkretnych podklas. Ponieważ te wzorce projektowe mówią o tworzeniu instancji obiektu, należy to do kategorii kreacyjnego wzorca projektowego. Jeśli zauważymy nazwę Metoda fabryczna, oznacza to, że istnieje metoda, która jest fabryką i generalnie fabryki są zaangażowane w kreację i tutaj powstaje obiekt. Jest to jeden z najlepszych sposobów tworzenia obiektu, w którym logika tworzenia obiektów jest ukryta dla klienta. Przyjrzyjmy się teraz implementacji.

Implementacja:
1. Zdefiniuj metodę fabryki w interfejsie.
2. Niech podklasa implementuje powyższą metodę fabryczną i zdecyduje, który obiekt utworzyć.
W Javie konstruktory nie są polimorficzne, ale pozwalając podklasie na tworzenie obiektu, dodajemy do instancji zachowanie polimorficzne. Krótko mówiąc, próbujemy osiągnąć pseudopolimorfizm, pozwalając podklasie decydować, co ma utworzyć, dlatego ta metoda Factory jest również nazywana

Wirtualny konstruktor. Spróbujmy to zaimplementować z problemem czasu rzeczywistego i ćwiczeniami z kodowania.

Opis problemu:
Rozważmy, że chcemy wdrożyć usługę powiadamiania przez e-mail, SMS i powiadomienia push. Spróbujmy to zaimplementować za pomocą wzorca projektowania metody fabrycznej. Najpierw zaprojektujemy do tego diagram klas UML.

Na powyższym diagramie klas mamy interfejs o nazwie Notification, a trzy konkretne klasy implementują interfejs Notification. Tworzona jest klasa fabryczna NotificationFactory w celu pobrania obiektu Notification. Przejdźmy teraz do kodowania.

Utwórz interfejs powiadomień

java

public interface Notification {
void notifyUser();
}



Uwaga – Powyższy interfejs można również stworzyć jako klasę abstrakcyjną.
Utwórz wszystkie klasy implementacji

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



Utwórz klasę fabryczną NotificationFactory.java, aby utworzyć instancję konkretnej klasy.

Teraz użyjmy klasy fabrycznej, aby utworzyć i pobrać obiekt konkretnej klasy, przekazując pewne informacje.

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

Przykłady w czasie rzeczywistym
Ten wzorzec projektowy jest szeroko stosowany w JDK, np.
1. getInstance () metody java.util.Calendar, NumberFormat i ResourceBundle używa wzorca projektowego metody fabrycznej.
2. Wszystkie klasy opakowania, takie jak Integer, Boolean itp. W Javie używają tego wzorca do oceny wartości za pomocą metody valueOf ().
3. java.nio.charset.Charset.forName (), java.sql.DriverManager # getConnection (), java.net.URL.openConnection (), java.lang.Class.newInstance (), java.lang.Class.forName () to tylko niektóre z innych przykładów użycia wzorca projektowania metody Factory.
Podsumowanie
Do tej pory dowiedzieliśmy się, czym jest wzorzec projektowy metody Factory i jak go zaimplementować. Wydaje mi się, że teraz dobrze rozumiemy zalety tego mechanizmu projektowania.

Tagi artykułów:

Articles
Previous Post

SC Picture Project (Polski)

Next Post

Nieuczciwy Abe: dlaczego nie należy używać testu groszowego do sprawdzania głębokości bieżnika

Dodaj komentarz Anuluj pisanie odpowiedzi

Najnowsze wpisy

  • Najlepsze szkoły fotograficzne na świecie, 2020
  • Suwerenni obywatele zabierają na drogi swoją antyrządową filozofię
  • Przewodnik po kosztach naprawy sztukaterii
  • Muckrakers (Polski)
  • Precyzyjna onkologia

Archiwa

  • Luty 2021
  • Styczeń 2021
  • Grudzień 2020
  • Listopad 2020
  • Październik 2020
  • Wrzesień 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.