Subscribe

Builder dizajn patern

Imali smo prilike da se upoznamo sa factory paternom u prethodnom postu.

U ovom postu obradićemo Builder patern, koji omogućava kreiranje kompleksnih objekata definišući korake potrebne za njegovo kreiranje.

Builder ćemo ilustrovati dijagramom klasa za kreiranje pojednostavljenog okvira aplikacije (Shell),  koji se sastaoji od opcija menija, pomoćne palete alata i status bar linije, a potom ćemo dati i konkretnu implementaciju u C#-u.

Koristeći stereotip (tekst koji se nalazi u «» oznakama, npr. «Director») predstavili smo ulogu koju klasa ima u Builder paternu.

Builder design patern

Na dijagramu su prikazane sledeće klase sa ulogama:

Application manager: ima ulogu kreiranja objekta koristeći Builder

ApplicatioShellBuilder: predstavlja apstraktni builder, odgovoran za kreiranje delova

AndroidApplicationShell, WindowsApplicationShell: imaju ulogu konkretnog buildera odgovornog za kreiranje delova, tako što implementira metode odgovorne za kreiranje konrektnog dela. Takođe njegova uloga je i da ima referencu na konkretnu reprezetaciju koju kreira (u našem slučaju to je ApplicationShellWindow, koji može predstavljati Widnows ili Android shell)

ApplicationShell: predstavlja kompleksan objekat koji se kreira koristeći builder

Korišćenje možemo demonstrirati u konzolnoj aplikaciji:

Pokretanje programa daje sledeći rezultat:

BuilderDesignPattern-ConsoleOutput

U praksi smo ovaj patern najčešće koristili zajedno sa Abstract factory u nekoliko scenarija od kojih su neki:

  • kreiranje shell-a aplikacije
  • kreiranje SQL upita za različite baze podataka (kada se ne koristi neki od OR mapera)
  • kreiranje logičkih filtera koji korisnici mogu da definišu

Leave a Reply