projektovanje namenskih računarskih struktura 1...o zahteva disciplinu u dizajnu i razvoju 2020 4...
TRANSCRIPT
![Page 1: Projektovanje namenskih računarskih struktura 1...o Zahteva disciplinu u dizajnu i razvoju 2020 4 MVC –Primer modela 2020 5 MVC –Primer prikaza 2020 6 MVC –Primer kontrolera](https://reader035.vdocuments.pub/reader035/viewer/2022062610/610b5438f56f231223473d59/html5/thumbnails/1.jpg)
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...o Zahteva disciplinu u dizajnu i razvoju 2020 4 MVC –Primer modela 2020 5 MVC –Primer prikaza 2020 6 MVC –Primer kontrolera](https://reader035.vdocuments.pub/reader035/viewer/2022062610/610b5438f56f231223473d59/html5/thumbnails/2.jpg)
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 2
![Page 3: Projektovanje namenskih računarskih struktura 1...o Zahteva disciplinu u dizajnu i razvoju 2020 4 MVC –Primer modela 2020 5 MVC –Primer prikaza 2020 6 MVC –Primer kontrolera](https://reader035.vdocuments.pub/reader035/viewer/2022062610/610b5438f56f231223473d59/html5/thumbnails/3.jpg)
Model-View-Controller
Koristi se u mnogim GUI aplikacijama
Razdvajanje odgovornosti pojedinih komponenti
o Model – čuva podatke sa kojima aplikacija barata.
o View – služi za prikaz podataka iz modela i prosleđuje korisničke aktivnosti kontroleru
o Controller – interpretira aktivnosti od View, utiče na Model, kontroliše tok podataka između Model i View, i po potrebi ažurira View.
2020 3
![Page 4: Projektovanje namenskih računarskih struktura 1...o Zahteva disciplinu u dizajnu i razvoju 2020 4 MVC –Primer modela 2020 5 MVC –Primer prikaza 2020 6 MVC –Primer kontrolera](https://reader035.vdocuments.pub/reader035/viewer/2022062610/610b5438f56f231223473d59/html5/thumbnails/4.jpg)
MVC – Prednosti i mane
Prednosti
o Smanjuje kompleksnost pojedinih komponenti
o Jasne zavisnosti i granice
o Čistija i lakše razumljiva implementacija
o Ponovno iskorišćenje komponenti bez modifikacije koda
o Lakše održavanje
o Implementacija vođena pravilima MVC – dileme „gde pripada“ se rešavaju principom MVC
Mane
o Možda malo više koda, ali je preglednije
o Zahteva disciplinu u dizajnu i razvoju
2020 4
![Page 5: Projektovanje namenskih računarskih struktura 1...o Zahteva disciplinu u dizajnu i razvoju 2020 4 MVC –Primer modela 2020 5 MVC –Primer prikaza 2020 6 MVC –Primer kontrolera](https://reader035.vdocuments.pub/reader035/viewer/2022062610/610b5438f56f231223473d59/html5/thumbnails/5.jpg)
MVC – Primer modela
2020 5
![Page 6: Projektovanje namenskih računarskih struktura 1...o Zahteva disciplinu u dizajnu i razvoju 2020 4 MVC –Primer modela 2020 5 MVC –Primer prikaza 2020 6 MVC –Primer kontrolera](https://reader035.vdocuments.pub/reader035/viewer/2022062610/610b5438f56f231223473d59/html5/thumbnails/6.jpg)
MVC – Primer prikaza
2020 6
![Page 7: Projektovanje namenskih računarskih struktura 1...o Zahteva disciplinu u dizajnu i razvoju 2020 4 MVC –Primer modela 2020 5 MVC –Primer prikaza 2020 6 MVC –Primer kontrolera](https://reader035.vdocuments.pub/reader035/viewer/2022062610/610b5438f56f231223473d59/html5/thumbnails/7.jpg)
MVC – Primer kontrolera
2020 7
![Page 8: Projektovanje namenskih računarskih struktura 1...o Zahteva disciplinu u dizajnu i razvoju 2020 4 MVC –Primer modela 2020 5 MVC –Primer prikaza 2020 6 MVC –Primer kontrolera](https://reader035.vdocuments.pub/reader035/viewer/2022062610/610b5438f56f231223473d59/html5/thumbnails/8.jpg)
MVC – Primer glavnog programa
2020 8
![Page 9: Projektovanje namenskih računarskih struktura 1...o Zahteva disciplinu u dizajnu i razvoju 2020 4 MVC –Primer modela 2020 5 MVC –Primer prikaza 2020 6 MVC –Primer kontrolera](https://reader035.vdocuments.pub/reader035/viewer/2022062610/610b5438f56f231223473d59/html5/thumbnails/9.jpg)
MVC – Diskusija
Gde se čuva stanje programa?
o Isključivo u modelu
Kako to olakšava razvoj i testiranje?
o Stanje softvera se lakše može snimati i ponoviti
o Prikupljanje testnih ulaza
o Lakše modelovanje stanja programa
Modularnost olakšava ponovnu iskoristivost pojedinih komponenti (npr. modela, ili prikaza ili kontrolne logike)
2020 9
![Page 10: Projektovanje namenskih računarskih struktura 1...o Zahteva disciplinu u dizajnu i razvoju 2020 4 MVC –Primer modela 2020 5 MVC –Primer prikaza 2020 6 MVC –Primer kontrolera](https://reader035.vdocuments.pub/reader035/viewer/2022062610/610b5438f56f231223473d59/html5/thumbnails/10.jpg)
Sinhrono-asinhrono
Sinhrono znači taktovano, pri čemu se čeka završetak prethodne operacije da bi se počelo sa narednom. Postoji zavisnost.
o Intel i7
o Jednonitni programi
o Muzika
Asinhrono znači da se može započeti naredna operacija i dok se prethodna na završi. Ne postoji zavisnost.
o Postoje i takvi eksperimentalni CPU – šta to znači?
o Ljudski mozak je definitivno asinhron
o Saobraćaj
2020 10
![Page 11: Projektovanje namenskih računarskih struktura 1...o Zahteva disciplinu u dizajnu i razvoju 2020 4 MVC –Primer modela 2020 5 MVC –Primer prikaza 2020 6 MVC –Primer kontrolera](https://reader035.vdocuments.pub/reader035/viewer/2022062610/610b5438f56f231223473d59/html5/thumbnails/11.jpg)
Sinhrono-asinhrono - Primeri
Naručivanje hrane
o Čekanje u redu vs naručivanje telefonom
Programiranje na zahtev šefa
o Ili čeka iza leđa vs radi nešto korisno dok programiramo
Učenje, nastava?
Sinhrono programiranje je lakše, ali potencijalno suboptimalno
o Zašto? Zbog neefikasno korišćenih resursa i vremena
Asinhrono programiranje je teže, ali efikasnije
o Zahteva dodatne mehanizme obaveštavanja
o Malo drugačije razmišljanje, bez pretpostavki
2020 11
![Page 12: Projektovanje namenskih računarskih struktura 1...o Zahteva disciplinu u dizajnu i razvoju 2020 4 MVC –Primer modela 2020 5 MVC –Primer prikaza 2020 6 MVC –Primer kontrolera](https://reader035.vdocuments.pub/reader035/viewer/2022062610/610b5438f56f231223473d59/html5/thumbnails/12.jpg)
Rezime
Šabloni ponašanja su prvenstveno funkcionalne prirode i nemaju nužno jedinstvenu implementacionu formu
Navedeni su samo najtipičniji primeri: MVP i sinhroni/asinhroni dizajn koji se često sreću u Androidu.
2020 12
![Page 13: Projektovanje namenskih računarskih struktura 1...o Zahteva disciplinu u dizajnu i razvoju 2020 4 MVC –Primer modela 2020 5 MVC –Primer prikaza 2020 6 MVC –Primer kontrolera](https://reader035.vdocuments.pub/reader035/viewer/2022062610/610b5438f56f231223473d59/html5/thumbnails/13.jpg)
Dodatne reference
Izvori
o https://conceptf1.blogspot.rs
o https://www.tutorialspoint.com/design_pattern
o Link
Dodatni materijal
o Stephen T. Albin , „The Art of Software Architecture: Design Methods and Techniques“
o Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides, „Design Patterns: Elements of Reusable Object-Oriented Software“
o By Eric Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra, „Head First Design Patterns: A Brain-Friendly Guide“
2020 13