Documente Academic
Documente Profesional
Documente Cultură
Chișinău – 2020
Definitie
Structura
Constructor (VehicleBuilder)
specifică o interfață abstractă pentru crearea părților unui obiect Produs
ConcreteBuilder (MotorCycleBuilder, CarBuilder, ScooterBuilder)
construiește și asamblează părți ale produsului prin implementarea interfeței Builder
definește și ține evidența reprezentării pe care o creează oferă o interfață pentru
preluarea produsului
Director (magazin)
construiește un obiect folosind interfața Builder Produs (vehicul) reprezintă obiectul
complex în construcție. ConcreteBuilder construiește reprezentarea internă a
produsului și definește procesul prin care este asamblat include clase care definesc
părțile componente, inclusiv interfețe pentru asamblarea pieselor în rezultatul final.
Implementare
//……….
Dupa cum se vede , avem 2 constructoare dar se poate intampla de a fi mai multe.
Problema
Problema consta in faptul ca noi vom trebui sa scrim diferite combinatii de parametri.
Mai mult de atat, va fi foarte usor sa facem accidental greseli in scrierea parametrilor
la locul lor. De exemplu putem scrie (“ Daniel “, “ Iepuras”) in loc de Participant
(“Iepuras”, “Daniel”), sau de exemplu putem incurca locul varstei cu inaltimea sau
gretatea deoarece ambii parametri sunt de acelasi tip si este posibil sa nu observam
eroarea pentru o lunga perioada de timp.
Ca sa fie mai usor , sa ne imaginam ca avem acest Builder doar pentru un parametru ,
de exemplu Name si sa o impartim in 3 parti:
Consturctor
Parametrul
In concluzie pot sa spun ca sablonul de proiecate Builder are multe avantaje foarte
placute pentru orice dezvoltator. Unul foarte important este ca codul pare mult mai
usor de citit cu ajutorul acestu model de proiectare deoarece tot ce are legatura cu
crearea unui obiect este preluat intr-o clasa separate - Builder, de asemenea la
completarea campurilor obiectului , parametrii sunt mai greu de amestecat ceea ce ne
ajuta la evitarea erorilor.