15
Odsek za računarsku tehniku i računarske komunikacije Projektovanje namenskih ra čunarskih struktura 1 Ključni dizajn šabloni koji se koriste u Androidu

Projektovanje namenskih računarskih struktura 1

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Projektovanje namenskih računarskih struktura 1

Odsek za računarsku tehniku i računarske komunikacije

Projektovanje namenskihračunarskih struktura 1

Ključni dizajn šabloni koji se koriste u Androidu

Page 2: Projektovanje namenskih računarskih struktura 1

Š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

Page 3: Projektovanje namenskih računarskih struktura 1

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

Page 4: Projektovanje namenskih računarskih struktura 1

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

Page 5: Projektovanje namenskih računarskih struktura 1

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

Page 6: Projektovanje namenskih računarskih struktura 1

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

Page 7: Projektovanje namenskih računarskih struktura 1

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

Page 8: Projektovanje namenskih računarskih struktura 1

Singleton – Implementacija 1

2020 8

Page 9: Projektovanje namenskih računarskih struktura 1

Singleton – Implementacija 2

2020 9

Page 10: Projektovanje namenskih računarskih struktura 1

Singleton – Implementacija 3

2020 10

Page 11: Projektovanje namenskih računarskih struktura 1

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

Page 12: Projektovanje namenskih računarskih struktura 1

Factory - implementacija

2020 12

Page 13: Projektovanje namenskih računarskih struktura 1

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

Page 14: Projektovanje namenskih računarskih struktura 1

Prototype - implementacija

2020 14

Page 15: Projektovanje namenskih računarskih struktura 1

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