Creative Saplings

GeeksforGeeks (Suomi)

syyskuu 29, 2020
No Comments

Se on luova suunnittelumalli, joka puhuu objektin luomisesta. Tehtaan suunnittelumallissa sanotaan, että määritetään käyttöliittymä (Java-käyttöliittymä tai abstrakti luokka) ja annetaan aliluokkien päättää, mikä objekti instantisoidaan. Rajapinnan tehdasmenetelmän avulla luokka voi lykätä yhden tai useamman konkreettisen alaluokan ilmentymistä. Koska nämä suunnittelumallit puhuvat kohteen välittömästä ilmentymisestä, joten se kuuluu luovan suunnittelumallin luokkaan. Jos havaitsemme nimen Factory-menetelmä, se tarkoittaa, että on olemassa menetelmä, joka on tehdas, ja yleensä tehtaat ovat mukana luovissa asioissa ja tässä luodaan objektia. Se on yksi parhaista tavoista luoda objekti, jossa objektin luontilogiikka on piilotettu asiakkaalle. Katsotaan nyt toteutusta.

Toteutus:
1. Määritä tehtaan menetelmä käyttöliittymän sisällä.
2. Anna alaluokan toteuttaa yllä oleva tehdasmenetelmä ja päättää mikä objekti luoda.
Java-sovelluksessa konstruktorit eivät ole polymorfisia, mutta antamalla aliluokan luoda objektin, lisäämme polymorfista käyttäytymistä ilmentymään. Lyhyesti sanottuna yritämme saavuttaa Pseudo-polymorfismin antamalla alaluokan päättää mitä luoda, joten tätä Factory-menetelmää kutsutaan myös nimellä Virtuaalinen konstruktori. Yritetään toteuttaa se reaaliaikaisella ongelmalla ja koodausharjoituksella.

Ongelma:
Harkitse, että haluamme ottaa käyttöön ilmoituspalvelun sähköpostitse, tekstiviestillä ja push-ilmoituksella. Yritetään toteuttaa tämä tehdasmenetelmien suunnittelumallin avulla. Ensin suunnitellaan tätä varten UML-luokkakaavio.

Yllä olevassa luokkakaaviossa meillä on käyttöliittymä nimeltä Notification, ja kolme konkreettista luokkaa toteuttaa Notification-käyttöliittymän. Tehdasluokka NotificationFactory luodaan Notification-objektin saamiseksi. Hypätään nyt koodaukseen.

Luo ilmoitusliittymä

java

public interface Notification {
void notifyUser();
}



Huomautus – Yllä oleva käyttöliittymä voidaan luoda myös abstraktina luokana.
Luo kaikki toteutusluokat

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



Luo tehdasluokka NotificationFactory.java konkreettisen luokan luomiseksi.

Käytä nyt tehdasluokkaa luodaksesi ja hankkiakseen konkreettisen luokan objektin välittämällä tietoja.

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

Reaaliaikaiset esimerkit
Tätä suunnittelukuviota on käytetty laajalti JDK: ssa, kuten
1. getaStance () -menetelmä java.util.Calendar-, NumberFormat- ja ResourceBundle-mallissa käyttää tehdasmenetelmän suunnittelumallia.
2. Kaikki Java-tiedostot, kuten Integer, Boolean jne., Käyttävät tätä mallia arvioidessaan arvoja valueOf () -menetelmällä.
3. java.nio.charset.Charset.forName (), java.sql.DriverManager # getConnection (), java.net.URL.openConnection (), java.lang.Class.newInstance (), java.lang.Class.forName () on joitain esimerkkejä, joissa on käytetty tehdasmenetelmäsuunnittelumallia.
Päätelmät
Tähän mennessä olemme oppineet, mikä on tehtaan menetelmän suunnittelumalli ja miten se toteutetaan. Uskon nyt, että meillä on riittävä käsitys tämän suunnittelumekanismin eduista.

Artikkelin avainsanat:

Articles
Previous Post

SC-kuvaprojekti

Next Post

Epärehellinen apu: miksi sinun ei pitäisi käyttää renkaan renkaan syvyyden tarkistamista pennytestillä

Vastaa Peruuta vastaus

Viimeisimmät artikkelit

  • Maailman parhaat valokuvauskoulut, 2020
  • Suvereenit kansalaiset vievät hallitustenvastaisen filosofiansa tielle
  • Stukkokorjauskustannusten opas
  • Muckrakers (Suomi)
  • Tarkka onkologia

Arkistot

  • helmikuu 2021
  • tammikuu 2021
  • joulukuu 2020
  • marraskuu 2020
  • lokakuu 2020
  • syyskuu 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.