Tovarniški vzorec v C++

Tovarniski Vzorec V C



Tovarniški vzorec je način ustvarjanja objektov pri razvoju programske opreme, ne da bi morali poznati podrobnosti o tem, kako so ustvarjeni. Zagotavlja poenostavljen vmesnik za ustvarjanje objektov tako, da skriva kompleksno logiko ustvarjanja za tovarniškim razredom. Spada v kategorijo oblikovalskih vzorcev, ki obravnavajo mehanizme ustvarjanja objektov. Ta članek obravnava tovarniške vzorce v C++.

Uvod v tovarniški vzorec

Načrtovalni vzorec je metoda za reševanje ponavljajočih se problemov pri načrtovanju programske opreme. Tovarniški vzorec je eden od oblikovalskih vzorcev, ki pomagajo ustvariti predmete na prilagodljiv in ločen način.

Tovarniški vzorec je vzorec ustvarjanja v C++, ki omogoča ustvarjanje predmeta brez izrecnega poznavanja razreda predmeta. Zagotavlja način za inkapsulacijo kompleksne logike ustvarjanja objektov znotraj ločenega tovarniškega razreda. To se izvede z definiranjem skupnega vmesnika za ustvarjanje objektov, kjer se specifični razred objekta določi med izvajanjem.







Namesto neposrednega ustvarjanja predmeta uporabimo tovarniško metodo, ki nam da primerek predmeta, ki ga želimo. Na ta način lahko skrijemo zapletene korake pri ustvarjanju predmeta in poenostavimo spreminjanje ali spreminjanje predmeta v prihodnosti.



Zakaj uporabljati tovarniški vzorec?

Obstaja več razlogov, zakaj bi morda želeli uporabiti tovarniški vzorec. Eden od razlogov je, da omogoča ločevanje kode od določenih razredov. Z uporabo tovarniške metode lahko preprosto zamenjamo en razred za drugega, ne da bi morali spremeniti katero koli drugo kodo, in jo naredimo učinkovitejšo.



Drugi razlog za uporabo tovarniškega vzorca je ta, da lahko naredi kodo večjo preizkušnjo. Tovarniški vzorci nam omogočajo testiranje kode z ustvarjanjem lažnih objektov.





Tukaj je nekaj dodatnih razlogov, zakaj se tovarniški vzorec uporablja v C++:

  • Vzorec tovarniške metode se uporablja, ko razred ne ve vnaprej, katere objekte mora ustvariti.
  • Vzorec se uporablja, ko se razred zanaša na svoje podrazrede, da določi predmete, ki jih ustvari.
  • Uporaben je, ko želite na enem mestu strniti logiko za ustvarjanje kompleksnega predmeta.

Primer tovarniškega vzorca v C++

V C++ lahko implementiramo tovarniški vzorec z definiranjem abstraktnega osnovnega razreda z metodo navidezne tovarne. Ta metoda bi morala vrniti kazalec na želeni primerek razreda. Po tem lahko iz tega osnovnega razreda izpeljemo konkretne razrede in preglasimo tovarniško metodo, da vrnemo primerek ustreznega razreda.



Tukaj je primer, kako lahko uporabimo to izvedbo tovarniškega vzorca:

#include

uporaba imenskega prostora std ;

razred Oblika {

javnosti :

virtualni praznina pripraviti ( ) = 0 ;

statična oblika * createShape ( int vrsta ) ;

} ;

razred Krog : javna oblika {

javnosti :

praznina pripraviti ( ) {

cout << 'Risanje kroga.' << konec ;

}

} ;

razred Pravokotnik : javna oblika {

javnosti :

praznina pripraviti ( ) {

cout << 'Risanje pravokotnika.' << konec ;

}

} ;

oblika * oblika :: createShape ( int vrsta ) {

če ( vrsta == 1 ) {
vrnitev novi krog ( ) ;
} drugače če ( vrsta == 2 ) {
vrnitev nov pravokotnik ( ) ;
} drugače {
vrnitev nullptr ;
}
}


int glavni ( ) {

oblika * krog = oblika :: createShape ( 1 ) ;

krog -> pripraviti ( ) ;

oblika * pravokotnik = oblika :: createShape ( 2 ) ;

pravokotnik -> pripraviti ( ) ;

vrnitev 0 ;

}

V tem primeru imamo razred Shape z dvema izpeljanima razredoma: Circle in Rectangle. Razred Shape ima čisto virtualno funkcijo draw(), ki jo izvajajo izpeljani razredi. Razred Shape ima tudi statično funkcijo createShape(int type), ki deluje kot tovarniška metoda za ustvarjanje primerkov izpeljanih razredov na podlagi navedenega tipa. Funkcija draw() se kliče na ustvarjenih predmetih, da prikaže njihovo specifično vedenje.

  Slika, ki vsebuje besedilo, pisavo, posnetek zaslona, ​​samodejno ustvarjen opis

Zaključek

Tovarniški vzorec je vzorec ustvarjanja v C++, ki omogoča ustvarjanje predmeta brez izrecnega poznavanja razreda predmeta. Zagotavlja poenostavljen vmesnik za ustvarjanje objektov tako, da skriva kompleksno logiko ustvarjanja za tovarniškim razredom. To se izvede z definiranjem skupnega vmesnika za ustvarjanje objektov, kjer se specifični razred objekta določi med izvajanjem. Preberite več o tovarniških vzorcih v tem članku.