Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
Odsek za računarsku tehniku i računarske komunikacije
Projektovanje namenskihračunarskih struktura 1
Ključni dizajn šabloni koji se koriste u Androidu
Šta su dizajn šabloni
U programiranju, dizajn šabloni su ponovljiva rešenja za probleme na koje iznova nailazimo tokom razvoja softvera, tj. koji se ponavljaju.
Predstavljaju razrađen pristup rešavanju tipičnih problema u raznim situacijama.
Treba ih razumeti/prihvatiti kao generičke koncepte.
Ne postoji „najbolji“ dizajn šablon – treba ih upoznati, kombinovati, učiti iz njih, unapređivati ih i prilagođavati potrebama.
Dizajn šabloni se mogu definisati i na nivou projekta, kao preporuka, ili izbor pristupa među različitim pristupima!
2020 2
Generalne napomene
Šabloni nisu međusobno isključivi
Koriste i dopunjuju standardne mehanizme nasleđivanja, polimorfizma, interfejsa
Nekada mogu biti i zamena za nasleđivanje, interfejse
Treba ih evaluirati i tokom dizajna odlučiti da li i kako će se koristiti
o A nakon toga držati se tokom implementacije
Olakšavaju i imenovanje pojedinih softverskih komponenti
Terminologija koja olakšava komunikaciju
Smanjuju mogućnost grešaka
2020 3
Grupe dizajn šablona
Stvaralački šabloni
o Fokusiraju se na probleme stvaranja logičkih entiteta, pri čemu sakrivaju detalje instanciranja
o Pokrivaju stvaranje, kompoziciju i predstavu objekata, nekada još i evidentiranje
Strukturni šabloni
o Pokrivaju probleme kompozicije složenijih logičkih entiteta upotrebom objekata i klasa
Šabloni ponašanja
o Pokrivaju algoritamske probleme, komunikaciju i raspodele odgovornosti među objektima.
2020 4
Tipični dizajn šabloni
Stvaralački šabloni
o Singleton
o Factory
o Prototip
Strukturni šabloni
o Dekorator
o Adapter
o Fasada
Šabloni ponašanja
o MVC/MVP
o Sinhrono/asinhrono
2020 5
Singleton dizajn šablon
Stvaralački dizajn šablon
Definicija
o Postojanje jedne (i samo jedne) instance koju koristi cela aplikacija
o Donekle slična globalnoj promenljivoj, predstavlja „globalno“ dostupnu tačku pristupa i sinhronizacije u širem opsegu
Tipične primene
o Logovanje, keširanje podataka, skup radnih niti, konfiguracija softvera, rukovanje kritičnim resursima
Najjednostavniji šablon u smislu dijagrama klasa
Može da zavara, obratiti pažnju na implementaciju
2020 6
Singleton - Koncept
Sing
leton
SW Kompone
nta
SW Kompone
nta
SW Kompone
nta
2020 7
Više komponenti koristi („napada“) isti resurs
Postoji samo jedan primerak tog resursa
Ovakav šablon se jako često pojavljuje u softveru
Singleton – Implementacija 1
2020 8
Singleton – Implementacija 2
2020 9
Singleton – Implementacija 3
2020 10
Factory (Fabrika)
Spada među stvaralačke šablone
Definicija
o Sakriva detalje instanciranja objekata
o Stvaranje objekata je na osnovu parametra ili stanja
o Obezbeđuje dodatni nivo fleksibilnosti
Tipične primene
o Jedan od najviše korišćenih šablona u Javi
o Često se koristi za GUI (npr. teme)
o Ili kada postoje paralelni skupovi izmenljivih objekata
Napomene
o Bitno je da se logika kreiranja ne provlači kroz sistem, tj. da se ne manifestuje negde drugde u programu!
2020 11
Podsetnik:Abstract factory
Factory - implementacija
2020 12
Prototype
Stvaralački šablon
Definicija
o Objekti se stvaraju na osnovu postojećeg prototipa
o Prototip mora da poseduje mogućnost kloniranja koji je po pravilu brži od stvaranja nove instance
Tipična primena
o Koristi se kada je stvaranje objekata zahtevna operacija
o Npr. upiti u baze podataka
2020 13
Prototype - implementacija
2020 14
Rezime
Dizajn šabloni su dobro poznata, ponovljiva rešenja
Predstavljaju moćan alat, ukoliko se ispravno koriste – a to zahteva njihovo poznavanje
Mogu se kombinovati sa OO principima i drugim šablonima
Stvaralački šabloni se koriste da se sakriju nepotrebni detalji stvaranja (nekada i uništavanja ili reciklaže) programskih objekata
Detalji se sakrivaju sa ciljem
o Lakše upotrebe komponente
o Univerzalnosti sprege
o Kasnije evolucije i optimizacije softvera
o Modelovanje ponašanja dela softvera
2020 15