Rūpnīcas modelis C++ valodā

Rupnicas Modelis C Valoda



Rūpnīcas modelis ir veids, kā izveidot objektus programmatūras izstrādē, nezinot konkrētu informāciju par to izveidošanu. Tas nodrošina vienkāršotu saskarni objektu izveidei, slēpjot sarežģīto izveides loģiku aiz rūpnīcas klases. Tas pieder pie dizaina modeļu kategorijas, kas attiecas uz objektu izveides mehānismiem. Šajā rakstā ir apskatīti rūpnīcas modeļi C++ valodā.

Ievads rūpnīcas modelī

Dizaina modelis ir programmatūras izstrādes atkārtotu problēmu risināšanas metode. Rūpnīcas modelis ir viens no dizaina modeļiem, kas palīdz veidot objektus elastīgā un atdalītā veidā.

Rūpnīcas modelis ir jaunrades dizaina modelis C++, kas ļauj izveidot objektu, nepārprotami nezinot objekta klasi. Tas nodrošina veidu, kā iekapsulēt sarežģītu objektu izveides loģiku atsevišķā rūpnīcas klasē. Tas tiek darīts, definējot kopīgu saskarni objektu izveidei, kur izpildes laikā tiek noteikta objekta konkrētā klase.







Tā vietā, lai izveidotu objektu tieši, mēs izmantojam rūpnīcas metodi, lai sniegtu mums vajadzīgā objekta gadījumu. Tādā veidā mēs varam paslēpt sarežģītās darbības, kas saistītas ar objekta izveidi, un atvieglot objekta mainīšanu vai modificēšanu nākotnē.



Kāpēc izmantot rūpnīcas modeli?

Ir vairāki iemesli, kāpēc mēs varētu vēlēties izmantot rūpnīcas modeli. Viens no iemesliem ir tas, ka tas ļauj atsaistīt kodu no noteiktām klasēm. Izmantojot rūpnīcas metodi, mēs varam viegli pārslēgt vienu klasi pret citu, nemainot citu kodu un nepadarot to efektīvāku.



Vēl viens rūpnīcas modeļa izmantošanas iemesls ir tas, ka tas var padarīt kodu pārbaudāmāku. Rūpnīcas modeļi ļauj mums pārbaudīt kodu, izveidojot viltotus objektus.





Šeit ir daži no iemesliem, kāpēc C++ tiek izmantots rūpnīcas modelis:

  • Rūpnīcas metodes modelis tiek izmantots, ja klase iepriekš nezina, kādi objekti tai ir jāizveido.
  • Modelis tiek izmantots, ja klase paļaujas uz savām apakšklasēm, lai norādītu izveidotos objektus.
  • Tas ir noderīgi, ja vēlaties vienuviet iekapsulēt sarežģīta objekta izveides loģiku.

Rūpnīcas modeļa piemērs C++ valodā

Programmā C++ mēs varam ieviest rūpnīcas modeli, definējot abstraktu bāzes klasi ar virtuālās rūpnīcas metodi. Šai metodei jāatgriež rādītājs uz vēlamo klases gadījumu. Pēc tam mēs varam iegūt konkrētas klases no šīs bāzes klases un ignorēt rūpnīcas metodi, lai atgrieztu atbilstošās klases gadījumu.



Šeit ir piemērs tam, kā mēs varētu izmantot šo rūpnīcas modeļa ieviešanu:

#include

izmantojot namespace std ;

klase Forma {

publiski :

virtuāls nederīgs izdarīt ( ) = 0 ;

statisks Forma * izveidot Shape ( starpt veids ) ;

} ;

klases aplis : publiska forma {

publiski :

nederīgs izdarīt ( ) {

cout << 'Apļa zīmēšana.' << endl ;

}

} ;

klase Taisnstūris : publiska forma {

publiski :

nederīgs izdarīt ( ) {

cout << 'Taisnstūra zīmēšana.' << endl ;

}

} ;

Forma * Forma :: izveidot Shape ( starpt veids ) {

ja ( veids == 1 ) {
atgriezties jauns aplis ( ) ;
} cits ja ( veids == 2 ) {
atgriezties jauns taisnstūris ( ) ;
} cits {
atgriezties nullptr ;
}
}


starpt galvenais ( ) {

Forma * aplis = Forma :: izveidot Shape ( 1 ) ;

aplis -> izdarīt ( ) ;

Forma * taisnstūris = Forma :: izveidot Shape ( 2 ) ;

taisnstūris -> izdarīt ( ) ;

atgriezties 0 ;

}

Šajā piemērā mums ir Shape klase ar divām atvasinātām klasēm: aplis un taisnstūris. Shape klasei ir tīra virtuālā funkcija draw(), ko īsteno atvasinātās klases. Shape klasei ir arī statiska funkcija createShape(int type), kas darbojas kā rūpnīcas metode, lai izveidotu atvasināto klašu gadījumus, pamatojoties uz norādīto tipu. Funkcija Draw() tiek izsaukta izveidotajiem objektiem, lai parādītu to īpašo uzvedību.

  Automātiski ģenerēts attēls, kurā ir teksts, fonts, ekrānuzņēmums Apraksts

Secinājums

Rūpnīcas modelis ir jaunrades dizaina modelis C++, kas ļauj izveidot objektu, nepārprotami nezinot objekta klasi. Tas nodrošina vienkāršotu saskarni objektu izveidei, slēpjot sarežģīto izveides loģiku aiz rūpnīcas klases. Tas tiek darīts, definējot kopīgu saskarni objektu izveidei, kur izpildes laikā tiek noteikta objekta konkrētā klase. Vairāk par rūpnīcas modeļiem lasiet šajā rakstā.