Tvornički obrazac u C++

Tvornicki Obrazac U C



Tvornički uzorak je način stvaranja objekata u razvoju softvera bez potrebe za poznavanjem specifičnih pojedinosti o tome kako su stvoreni. Omogućuje pojednostavljeno sučelje za stvaranje objekata skrivanjem složene logike stvaranja iza tvorničke klase. Pripada kategoriji dizajnerskih obrazaca koji se bave mehanizmima stvaranja objekata. Ovaj članak pokriva tvorničke uzorke u C++.

Uvod u tvornički uzorak

Uzorak dizajna je metoda rješavanja problema koji se ponavljaju u dizajnu softvera. Tvornički uzorak jedan je od dizajnerskih uzoraka koji pomažu u stvaranju objekata na fleksibilan i razdvojen način.

Tvornički obrazac je kreacijski dizajn obrazac u C++ koji omogućuje stvaranje objekta bez eksplicitnog poznavanja klase objekta. Omogućuje način za kapsuliranje složene logike stvaranja objekata unutar zasebne tvorničke klase. To se postiže definiranjem zajedničkog sučelja za stvaranje objekata, gdje se specifična klasa objekta određuje tijekom izvođenja.







Umjesto da izravno kreiramo objekt, koristimo tvorničku metodu da nam da instancu objekta koji želimo. Na taj način možemo sakriti komplicirane korake uključene u kreiranje objekta i učiniti jednostavnijim mijenjanje ili modificiranje objekta u budućnosti.



Zašto koristiti tvornički uzorak?

Nekoliko je razloga zašto bismo željeli koristiti tvornički uzorak. Jedan od razloga je taj što dopušta odvajanje koda od specifičnih klasa. Korištenjem tvorničke metode možemo jednostavno zamijeniti jednu klasu drugom bez potrebe za mijenjanjem bilo kojeg drugog koda i učiniti je učinkovitijom.



Još jedan razlog za korištenje tvorničkog obrasca je taj što kod može učiniti testiranijim. Tvornički uzorci omogućuju nam testiranje koda stvaranjem lažnih objekata.





Evo još nekih razloga zašto se tvornički obrazac koristi u C++:

  • Uzorak tvorničke metode koristi se kada klasa ne zna unaprijed koje objekte treba stvoriti.
  • Uzorak se koristi kada se klasa oslanja na svoje potklase za specificiranje objekata koje stvara.
  • Korisno je kada želite sažeti logiku za stvaranje složenog objekta na jednom mjestu.

Primjer tvorničkog uzorka u C++

U C++-u možemo implementirati tvornički uzorak definiranjem apstraktne osnovne klase metodom virtualne tvornice. Ova metoda bi trebala vratiti pokazivač na željenu instancu klase. Nakon toga možemo izvesti konkretne klase iz ove osnovne klase i nadjačati tvorničku metodu da vratimo instancu odgovarajuće klase.



Evo primjera kako možemo koristiti ovu implementaciju tvorničkog obrasca:

#include

koristeći prostor imena std ;

razred Oblik {

javnost :

virtualan poništiti crtati ( ) = 0 ;

statički Oblik * createShape ( int tip ) ;

} ;

razreda Krug : javni oblik {

javnost :

poništiti crtati ( ) {

cout << 'Crtanje kruga.' << endl ;

}

} ;

klasa Pravokutnik : javni oblik {

javnost :

poništiti crtati ( ) {

cout << 'Crtanje pravokutnika.' << endl ;

}

} ;

Oblik * Oblik :: createShape ( int tip ) {

ako ( tip == 1 ) {
povratak novi krug ( ) ;
} drugo ako ( tip == 2 ) {
povratak novi pravokutnik ( ) ;
} drugo {
povratak nullptr ;
}
}


int glavni ( ) {

Oblik * krug = Oblik :: createShape ( 1 ) ;

krug -> crtati ( ) ;

Oblik * pravokutnik = Oblik :: createShape ( 2 ) ;

pravokutnik -> crtati ( ) ;

povratak 0 ;

}

U ovom primjeru imamo klasu Oblik s dvije izvedene klase: Krug i Pravokutnik. Klasa Shape ima čistu virtualnu funkciju draw(), koju implementiraju izvedene klase. Klasa Shape također ima statičku funkciju createShape(int type), koja djeluje kao tvornička metoda za stvaranje instanci izvedenih klasa na temelju navedenog tipa. Funkcija draw() poziva se na stvorene objekte kako bi se pokazalo njihovo specifično ponašanje.

  Slika koja sadrži tekst, font, snimku zaslona Opis automatski generiran

Zaključak

Tvornički obrazac je kreacijski dizajn obrazac u C++ koji omogućuje stvaranje objekta bez eksplicitnog poznavanja klase objekta. Omogućuje pojednostavljeno sučelje za stvaranje objekata skrivanjem složene logike stvaranja iza tvorničke klase. To se postiže definiranjem zajedničkog sučelja za stvaranje objekata, gdje se specifična klasa objekta određuje tijekom izvođenja. Pročitajte više o tvorničkim uzorcima u ovom članku.