Decorator Adapter Chain of Responsibility Facade Proxy
|
|
- Daniella Harrell
- 6 years ago
- Views:
Transcription
1 Šabloni dizajna
2 Decorator Adapter Chain of Responsibility Facade Proxy
3 Koristi se da bi se proširila funkcionalnost određenog objekta pri izvršavanju, nezavisno od drugih instanci klase tog objekta, na način koji je definisan u toku dizajniranja koda.
4 Ovo se postiže na sledeći način: Klasa originalne komponente se nasledi u apstraktnu klasu dekoratora. U klasu dekoratora se doda kao polje pokazivač na komponentu. To polje se inicijalizuje u konstruktoru dekoratora. U metodima dekoratora se svi metodi iz komponente proslede pokazivaču na komponentu. U konkretnim dekoratorima se preklope svi metodi čije ponašanje želimo da promenimo.
5 public interface Coffee { public double getcost(); public String getingredient(); public class SimpleCoffee implements Coffee { double cost; String ingredient; public SimpleCoffee() { cost = 1; ingredient = "Coffee"; public double getcost() { return cost; public String getingredient() { return ingredient;
6 public abstract class CoffeeDecorator implements Coffee { protected Coffee decoratedcoffee; protected String ingredientseparator; public CoffeeDecorator(Coffee decoratedcoffee) { this.decoratedcoffee = decoratedcoffee; ingredientseparator = ", "; public double getcost() { return decoratedcoffee.getcost(); public String getingredient() { return decoratedcoffee.getingredient();
7 public class Milk extends CoffeeDecorator { double cost; String ingredient; public Milk(Coffee decoratedcoffee) { super(decoratedcoffee); cost = 0.5; ingredient = "Milk"; public double getcost() { return super.getcost() + cost; public String getingredient() { return super.getingredient() + super.ingredientseparator + ingredient;
8 public class Milk extends CoffeeDecorator { double cost; String ingredient; public Milk(Coffee decoratedcoffee) { super(decoratedcoffee); cost = 0.5; ingredient = "Milk"; public double getcost() { return super.getcost() + cost; public String getingredient() { return super.getingredient() + super.ingredientseparator + ingredient;
9 public class Milk extends CoffeeDecorator { double cost; String ingredient; public Milk(Coffee decoratedcoffee) { super(decoratedcoffee); cost = 0.5; ingredient = "Milk"; public double getcost() { return super.getcost() + cost; public String getingredient() { return super.getingredient() + super.ingredientseparator + ingredient;
10 public class Whip extends CoffeeDecorator { double cost; String ingredient; public Whip(Coffee decoratedcoffee) { super(decoratedcoffee); cost = 0.7; ingredient = "Whip"; public double getcost() { return super.getcost() + cost; public String getingredient() { return super.getingredient() + super.ingredientseparator + ingredient;
11 public class Main { public static void main(string[] args) { Coffee c = new SimpleCoffee(); System.out.println("Cost: " + c.getcost() + " Ingredient: " + c.getingredient()); c = new Milk(c); System.out.println("Cost: " + c.getcost() + " Ingredient: " + c.getingredient()); c = new Whip(c); System.out.println("Cost: " + c.getcost() + " Ingredient: " + c.getingredient());
12 public class Main { public static void main(string[] args) { Coffee c = new SimpleCoffee(); System.out.println("Cost: " + c.getcost() + " Ingredient: " + c.getingredient()); c = new Milk(c); System.out.println("Cost: " + c.getcost() + " Ingredient: " + c.getingredient()); c = new Whip(c); System.out.println("Cost: " + c.getcost() + " Ingredient: " + c.getingredient());
13 Cost: 1.0 Ingredient: Coffee Cost: 1.5 Ingredient: Coffee, Milk Cost: 2.2 Ingredient: Coffee, Milk, Whip
14 Klasi se pristupa preko javnih metoda. Nekada se može desiti da klasa može da pruži korisniku potrebnu funkcionalnost, ali ne kroz ponuđene metode. U takvom slučaju se korisničkoj klasi mora omogućiti odgovarajući interfejs za pristup željenoj klasi. To se postiže korišćenjem adaptera. Adapter pruža korisniku željene metode za pristup klasi koja se adaptira.
15 Adapteri se dele na dve kategorije: Adapter klase kreira se tako što se posmatrana klasa nasledi. Klasa naslednik implementira željene metode. Adapter objekta klasa sadrži referencu na objekat posmatrane klase. Takođe, sadrži i željene metode.
16 Adapter klase Može se koristiti da prilagodi pristup jedino posmatranoj klasi, ali ne i njenim naslednicima. Može preklopiti metode klase i promeniti im ponašanje. Klijent ima uvid u metode posmatrane klase. Može da menja i ponašanje protected metoda. Adapter objekta Može se koristiti da prilagodi pristup klasi, kao i njenim naslednicima. Ne može preklopiti metode. Doduše, može promeniti ponašanje kroz pristupne metode. Klijent i posmatrana klasa su potpuno odvojeni adapterom. Može da pristupa samo javnim metodima posmatrane klase.
17
18
19 class CRectangle{ public: virtual void draw() = 0; ; class CLegacyRectangle { private: Coordinate m_ix1, m_iy1, m_ix2, m_iy2; public: CLegacyRectangle(Coordinate x1, Coordinate y1, Coordinate x2, Coordinate y2); void olddraw(); ;
20 CLegacyRectangle(Coordinate x1, Coordinate y1, Coordinate x2, Coordinate y2){ m_ix1 = x1; m_iy1 = y1; m_ix2 = x2; m_iy2 = y2; cout << "LegacyRectangle: create. (" << m_ix1 << "," << m_iy1 << ") => (" << m_ix2 << "," << m_iy2 << ")" << endl; void olddraw(){ cout << "LegacyRectangle: olddraw(). (" << m_ix1 << "," << m_iy1 << ") => (" << m_ix2 << "," << m_iy2 << ")" << endl;
21 class CRectangleAdapter : private CLegacyRectangle, public CRectangle { ; CRectangleAdapter(Coordinate x, Coordinate y, Dimension width, Dimension height): CLegacyRectangle(x, y, x + width, y + height){ cout << "RectangleAdapter: create. (" << x << "," << y << "), width = " << width << ", height = " << height << endl; void draw(){ cout << "RectangleAdapter: draw." << endl; olddraw();
22 int main(){ CRectangle * rect = new CRectangleAdapter(120, 200, 60, 40); rect->draw(); LegacyRectangle: create. (120,200) => (180,240) RectangleAdapter: create. (120,200), width = 60, height = 40 RectangleAdapter: draw. LegacyRectangle: olddraw(). (120,200) => (180,240)
23 Sastoji se od više procesnih objekata koji treba da obrade određeni objekat. Svaki od procesnih objekata sadrži logiku koja opisuje kakve objekte može da obrađuje. Klasa koja sadrži procesne objekte treba da sadrži i mehanizam za dodavanje novih procesnih objekata. U nekim slučajevima može se praviti i tzv. drvo odgovornosti gde procesni objekti odlučuju kome prosleđuju objekat.
24 abstract class Logger { public static int ERR = 3; public static int NOTICE = 5; public static int DEBUG = 7; protected int mask; protected Logger next; public Logger setnext(logger l) { next = l; return l;
25 public void message(string msg, int priority) { if (priority <= mask) { writemessage(msg); if (next!= null) { next.message(msg, priority); abstract protected void writemessage(string msg);
26 class StdoutLogger extends Logger { protected void writemessage(string msg) { System.out.println("Writing to stdout: " + msg); class Logger extends Logger { protected void writemessage(string msg) { System.out.println("Sending via " + msg); class StderrLogger extends Logger { protected void writemessage(string msg) { System.err.println("Sending to stderr: " + msg);
27 public static void main(string[] args) { Logger l,l1; l1 = l = new StdoutLogger(Logger.DEBUG); l1 = l1.setnext(new Logger(Logger.NOTICE)); l1 = l1.setnext(new StderrLogger(Logger.ERR)); l.message("entering function y.", Logger.DEBUG); l.message("step1 completed.", Logger.NOTICE); l.message("an error has occurred.", Logger.ERR);
28 Writing to stdout: Entering function y. Writing to stdout: Step1 completed. Sending via Step1 completed. Writing to stdout: An error has occurred. Sending via An error has occurred. Writing to stderr: An error has occurred.
29 Pruža pojednostavljen pristup komplikovanom sistemu klasa. Fasada može da smanji zavisnost koda od neke biblioteke klasa, jer se komunikacija sa tom bibliotekom vrši preko nje. Može da sakrije loše dizajniranu biblioteku klasa kroz svoj dobar dizajn.
30
31
32 class CPU { public void freeze() {... public void jump(long position) {... public void execute() {... class Memory { public void load(long position, byte[] data) {... class HardDrive { public byte[] read(long lba, int size) {...
33 class Computer { private CPU cpu; private Memory memory; private HardDrive harddrive; public Computer() { this.cpu = new CPU(); this.memory = new Memory(); this.harddrive = new HardDrive(); public void startcomputer() { cpu.freeze(); memory.load(boot_address, harddrive.read( BOOT_SECTOR, SECTOR_SIZE)); cpu.jump(boot_address); cpu.execute();
34 public static void main(string[] args) { Computer facade = new Computer(); facade.startcomputer();
35 Najčešća logika je da objekat klijent ima direktan pristup objektu koji obezbeđuje neku uslugu. Nekada je, iz raznih razloga (lokacija objekta koji obezbeđuje uslugu, njegovo stanje ili neki specijalan uslov), potrebno onemogućiti ovakav direktan pristup. U takvim slučajevima se koristi Proxy šablon. Klijent se oslobađa implementiranja specijalnih uslova za pristup željenom objektu.
36 Tip proxy ja Remote proxy Virtual proxy Cache/Server proxy Firewall proxy Permission proxy Svrha Da bi se obezbedio pristup udaljenom objektu. Obezbeđuje on demand kreiranje memorijski zahtevnih objekata (tek kada su potrebni). Čuva rezultate najčešće korišćenih operacija na ciljnom objektu. Kada korisnik ponovi neku operaciju, dobija rezultat bez pristupa ciljnom objektu. Štiti ciljni objekat od loših klijenata. Takođe, može da štiti klijenta od pristupa ciljnom objektu koji može da mu našteti (promeni nešto što ne bi smeo i sl.). Različitim klijentima omogućuje različite nivoe pristupa.
37 Tip proxy ja Synchronization proxy Smart Reference proxy Counting proxy Svrha Obezbeđuje siguran konkurentan pristup ciljnom objektu. Onemogućuje slučajno brisanje ciljnog objekta iz memorije kada ima više klijenata koji mu pristupaju. Proxy vodi računa o broju referenci na ciljni objekat i briše ga tek kada nema referenci na njega. Obezbeđuje neku vrstu kontrole pre izvršenja određenog metoda.
38 interface Image { public void displayimage(); class RealImage implements Image { private String filename; public RealImage(String filename) { this.filename = filename; loadimagefromdisk(); private void loadimagefromdisk() { System.out.println("Loading " + filename); public void displayimage() { System.out.println("Displaying " + filename);
39 class ProxyImage implements Image { private String filename; private RealImage image; public ProxyImage(String filename) { this.filename = filename; public void displayimage() { if (image == null) { image = new RealImage(filename); image.displayimage();
40 public static void main(string[] args) { Image img1 = new ProxyImage("HiRes_10MB_Photo1"); Image img2 = new ProxyImage("HiRes_10MB_Photo2"); img1.displayimage(); img2.displayimage(); img1.displayimage(); Loading HiRes_10MB_Photo1 Displaying HiRes_10MB_Photo1 Loading HiRes_10MB_Photo2 Displaying HiRes_10MB_Photo2 Displaying HiRes_10MB_Photo1
41 public static void main(string[] args) { Image img1 = new ProxyImage("HiRes_10MB_Photo1"); Image img2 = new ProxyImage("HiRes_10MB_Photo2"); img1.displayimage(); img2.displayimage(); img1.displayimage(); Loading HiRes_10MB_Photo1 Displaying HiRes_10MB_Photo1 Loading HiRes_10MB_Photo2 Displaying HiRes_10MB_Photo2 Displaying HiRes_10MB_Photo1
Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi
Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi DELEGATI Bezbedni pokazivači na funkcije Jer garantuju vrednost deklarisanog tipa. Prevodilac prijavljuje grešku ako pokušate da povežete
More informationDesign Patterns - Decorator Pattern
Design Patterns - Decorator Pattern Decorator pattern allows a user to add new functionality to an existing object without altering its structure. This type of design pattern comes under structural pattern
More informationSvi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt
Funkcionalno programiranje Interoperabilnost jezika Scala i Java Prevođenje u Java bajt kod Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući
More informationDogađaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.
Obrada izuzetaka Šta je izuzetak? Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi. Prosleđuje izuzetak,
More informationOsnove programskog jezika C# Čas 4. Nasledjivanje 2. deo
Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Nasledjivanje klasa Modifikator new class A { public virtual void F() { Console.WriteLine("I am A"); } } class B : A { public override void F()
More informationObjektno orjentirano programiranje. Predavanje 13 Design patterns
Objektno orjentirano programiranje Predavanje 13 Design patterns Design Patterns elements of reusable object-oriented software Autori: (Gang of Four) Erich Gamma Richard Helm Ralph Johnson John Vlissides
More informationUNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET
UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET Katedra za elektroniku Računarska elektronika Grupa br. 11 Projekat br. 8 Studenti: Stefan Vukašinović 466/2013 Jelena Urošević 99/2013 Tekst projekta :
More informationPROGRAMIRANJE. Amir Hajdar
PROGRAMIRANJE Amir Hajdar Teme 2 Klase i objekti u Javi Primjer kroz klasu Krug Atributi i metode Inicijalizacija objekata (konstruktori) Polymorphism Statičke varijable i metode This Klase i objekti u
More informationPREDMET. Osnove Java Programiranja. Čas JAVADOC
PREDMET Osnove Java Programiranja JAVADOC Copyright 2010 UNIVERZITET METROPOLITAN, Beograd. Sva prava zadržana. Bez prethodne pismene dozvole od strane Univerziteta METROPOLITAN zabranjena je reprodukcija,
More informationpojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1
NIZOVI Niz deklarišemo navođenjemtipa elemenata za kojim sledi par srednjih zagrada[] i naziv niza. Ako je niz višedimenzionalni između zagrada[] se navode zarezi, čiji je broj za jedan manji od dimenzija
More informationVežbe - XII nedelja PHP Doc
Vežbe - XII nedelja PHP Doc Dražen Drašković, asistent Elektrotehnički fakultet Univerziteta u Beogradu Verzija alata JavaDoc za programski jezik PHP Standard za komentarisanje PHP koda Omogućava generisanje
More informationVHDLPrimeri Poglavlje5.doc
5. VHDL opis kola koja obavljaju osnovne aritmetičke funkcije Sabirači Jednobitni potpuni sabirač definisan je tablicom istinitosti iz Tabele 5.1. Tabela 5.1. cin a b sum cout 0 0 0 0 0 0 0 1 1 0 0 1 0
More informationProgramski jezik JAVA PREDAVANJE
Programski jezik JAVA PREDAVANJE 8 2018 www.etf.ac.me Polja za potvrdu i Radio tasteri Polja za potvrdu i radio tasteri nijesu uzajamno isključivi, što znači da ako imate pet polja za potvrdu u jednom
More informationJava. Ugnježdeni tipovi IMI PMF KG OOP 09 AKM. najveći deo teksta je preuzet sa slajdova Prof. Dragana Milićeva (ETF Bg) namenjenih pedmetu OOP2
Java IMI PMF KG OOP 0 AKM 1 Ugnježdeni tipovi najveći deo teksta je preuzet sa slajdova Prof. Dragana Milićeva (ETF Bg) namenjenih pedmetu OOP2 Ugneždeni tipovi IMI PMF KG OOP 0 AKM 2 Unutrašnje klase
More informationVDSL modem Zyxel VMG1312-B10A/B30A
VDSL modem Zyxel VMG1312-B10A/B30A Default Login Details LAN IP Address http://192.168.2.1 User Name user Password 1234 Funkcionalnost lampica Power lampica treperi kratko vrijeme nakon uključivanja modema,
More informationRačunarske osnove Interneta (SI3ROI, IR4ROI)
Računarske osnove terneta (SI3ROI, IR4ROI) Vežbe MPLS Predavač: 08.11.2011. Dražen Drašković, drazen.draskovic@etf.rs Autori: Dražen Drašković Naučili ste na predavanjima MPLS (Multi-Protocol Label Switching)
More informationProgramiranje III razred
Tehnička škola 9. maj Bačka Palanka Programiranje III razred Naredbe ciklusa for petlja Naredbe ciklusa Veoma često se ukazuje potreba za ponavljanjem nekih naredbi više puta tj. za ponavljanjem nekog
More informationnamespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
Spojnice using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;
More informationCSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets
CSS CSS CSS: Cascading Style Sheets - Opisuje izgled (appearance) i raspored (layout) stranice - Sastoji se od CSS pravila, koji defini[u skup stilova selector { property: value; 1 Font face: font-family
More informationGUI - događaji (Events) i izuzeci. Bojan Tomić
GUI - događaji (Events) i izuzeci Bojan Tomić Događaji GUI reaguje na događaje (events) Događaj je neka akcija koju korisnik programa ili neko drugi izvrši korišćenjem perifernih uređaja (uglavnom miša
More informationVRIJEDNOSTI ATRIBUTA
VRIJEDNOSTI ATRIBUTA Svaki atribut (bilo da je primarni ključ, vanjski ključ ili običan atribut) može i ne mora imati ograničenja na svojim vrijednostima. Neka od ograničenja nad atributima: Null / Not
More informationb) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.
NAREDBA CIKLUSA SA PREDUSLOVOM WHILE 1.Odrediti vrednosti s i p nakon izvrsenja sledecih naredbi za dato a=43, a=34, a=105 program p1; var a,s,p:integer; write('unesite a:');readln(a); p:=a; s:=0; while
More informationPARALELNO PROGRAMIRANJE
Predavanje 09 Odjel za matematiku 1 PARALELNO PROGRAMIRANJE POSIX threadovi za C++ Predavanje 09 Odjel za matematiku 2 Programske niti (thread) unutar procesa Danas ćemo se upoznati s POSIX thread bibliotekom
More informationUPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a
UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a Webmail sistem ima podršku za SSL (HTTPS). Korištenjem ovog protokola sva komunikacija između Webmail sistema i vašeg Web čitača je kriptovana. Prilikom pristupa
More informationpublic static void main(string []args) { System.out.println("Hello World"); /* prints Hello World */
Java Uvod Hello world primer Java program predstavlja skup objekata koji prozivaju jedni drugima metode i tako komuniciraju. Izvorni kod se uvek čuva u datotekama sa ekstenzijom.java. Ispod je predstavljen
More informationUčitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.
Kontrolne naredbe Primjeri: Opšti oblik razgranate strukture (if sa ) if (uslov) Naredba 1 ili blok naredbi1 Naredba 2 ili blok naredbi2 Učitati broj x i štampati vrijednost double x, z; Scanner in=new
More informationProgramski jezici. leto
Programski jezici leto 2010-11 Grafički programi Koriste grafičke mogućnosti: boje, fontove, geometrijske oblike, slike,... Komuniciraju sa korisnikom preko grafičkog korisničkog interfejsa koji se sastoji
More informationMašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv
Mašinska vizija Dr Nenad Jovičić 2017. tnt.etf.rs/~mv Linearne 2D geometrijske transformacije 2D geometrijske transformacije Pretpostavka: Objekti u 2D prostoru se sastoje iz tačaka i linija. Svaka tačka
More informationx y = z Zadaci - procedure
Zadaci - procedure Zad1. Data je kvadratna meta u koordinatnom sistemu sa koordinatama A(0,0), B(1,0), C(1,1), D(0,1). Sastaviti proceduru Gadjanje koja će odrediti broj poena na sledeći način: ako je
More informationUputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0
POM - Pomoć korisnicima Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0 IZUM, 2016 COBISS, COMARC, COBIB, COLIB, IZUM su zaštićeni znaci u posedu
More informationPITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM
PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I 1. Definicija svake klase sadrzi kljucnu rec iza koje se navodi ime klase: class public extends 2. Kada je funkcija clanica definisana izvan
More informationMicrosoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,
Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, 13.04.2017. Podešavanje Hyper-V Servera 2016 za RSAT upravljanje Dario Štefek Lokacije za preuzimanje: Microsoft Hyper-V Server 2016 https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2016
More informationAspektno programiranje u Javi. AOP + AspectJ
1 Aspektno programiranje u Javi AOP + AspectJ Posledice nemodularnosti? slabo praćenje toka izvršavanja smanjenja produktivnost smanjen code reuse smanjen krajnji kvalitet celog sistema teško održavanje
More informationUputstvo za podešavanje mail klijenta
Uputstvo za podešavanje mail klijenta 1. Podešavanje Thunderbird mail klijenta 1.1 Dodavanje mail naloga Da biste podesili Vaš mail klijent (u ovom slučaju Thunderbird) da prima i šalje mail-ove potrebno
More informationL23.1 Introduction... 2
Department of Computer Science COS121 Lecture Notes: L23 Adapter Design Pattern 23 & 26 September 2014 Copyright c 2014 by Linda Marshall and Vreda Pieterse. All rights reserved. Contents L23.1 Introduction.................................
More informationUvod u relacione baze podataka
Uvod u relacione baze podataka Ana Spasić 5. čas 1 Podupiti, operatori exists i in 1. Izdvojiti imena i prezimena studenata koji su položili predmet čiji je identifikator 2001. Rešenje korišćenjem spajanja
More informationKREDITI ZA POLJOPRIVREDNIKE
UNICREDIT BANK SRBIJA AD 11 000 Beograd, Rajićeva 27-29 Telefon: 011/ 3777 888 www.unicreditbank.rs e-mail:office@unicreditgroup.rs KREDITI ZA POLJOPRIVREDNIKE Vlasnik ste ili zakupac 6 hektara obradive
More informationNasleđivanje i izvedene klase u jeziku C++
Tema 08 Nasleđivanje i izvedene klase u jeziku C++ dr Vladislav Miškovic vmiskovic@singidunum.ac.rs Fakultet za informatiku i računarstvo - Tehnički fakultet OBJEKTNO ORIJENTISANO PROGRAMIRANJE 2016/2017
More informationTema 8: Koncepti i teorije relevantne za donošenje odluka (VEŽBE)
Tema 8: Koncepti i teorije relevantne za donošenje odluka (VEŽBE) SISTEMI ZA PODRŠKU ODLUČIVANJU dr Vladislav Miškovic vmiskovic@singidunum.ac.rs Fakultet za računarstvo i informatiku 2013/2014 Tema 8:
More informationPredavanje Projektovanje softvera - Niti. Sadržaj:
Predavanje Projektovanje softvera - Niti Sadržaj: 1. Niti 1.1 Glavna programska nit 1.2 Pravljenje niti 1.2.1 Pravljenje niti realizacijom klase Runnable 1.2.2 Pravljenje niti proširenjem klase Thread
More informationUvod u programiranje - vežbe. Kontrola toka izvršavanja programa
Uvod u programiranje - vežbe Kontrola toka izvršavanja programa Naredbe za kontrolu toka if, if-else, switch uslovni operator (?:) for, while, do-while break, continue, return if if (uslov) naredba; if
More informationUputstvo za korišćenje logrotate funkcije
Copyright AMRES Sadržaj Uvod 3 Podešavanja logrotate konfiguracionog fajla 4 Strana 2 od 5 Uvod Ukoliko je aktivirano logovanje za RADIUS proces, može se desiti da posle određenog vremena server bude preopterećen
More informationKLASIFIKACIJA JELENA JOVANOVIĆ. Web:
KLASIFIKACIJA JELENA JOVANOVIĆ Email: jeljov@gmail.com Web: http://jelenajovanovic.net PREGLED PREDAVANJA Šta je klasifikacija? Binarna i više-klasna klasifikacija Algoritmi klasifikacije Mere uspešnosti
More informationDesign Patterns. Design Patterns
Design Patterns Design Patterns A design pattern is a template solution that developers have refined over time to solve a range of recurring problems Generally object-oriented focus Name that uniquely
More informationObjektno orijentisano programiranje. Aleksandra Klašnja-Milićević Marko Marković
Objektno orijentisano programiranje Aleksandra Klašnja-Milićević Marko Marković Teme koje će biti obrađene Uvod i koncepti OOP Klase Nasleđivanje Interfejsi Modifikatori, kreiranje instance klase, uništavanje
More informationNIZOVI.
NIZOVI LINKOVI ZA KONZOLNI C# OSNOVNO http://www.mycity.rs/net/programiranje-u-c-za-osnovce-i-srednjoskolce.html http://milan.milanovic.org/skola/csharp-00.htm Niz deklarišemo navođenjem tipa elemenata
More informationIzrada VI laboratorijske vježbe
Izrada VI laboratorijske vježbe 1. Programirati proceduru koja se aktivira sa Standard palete alatki klikom na button Fajlovi. Prilikom startovanja procedure prikazuje se forma koja sadrži jedan list box
More informationTEHNIKA I INFORMATIKA U OBRAZOVANJU
TEHNIKA I INFORMATIKA U OBRAZOVANJU Konferencija 32000 Čačak 9-11. Maja 2008. UDK: 004 : 371 Stručni rad VEZA ZAVISNOSTI ACCESS Momčilo Vujičić 1, Munir Šabanović 2 Rezime: U radu je opisana veza zavisnosti
More informationVB komande. Programiranje 1
VB komande Programiranje 1 Zadatak 1: Sastaviti program koji se sastoji iz jedne ListBox kontrole, jedne Textbox kontrole i dva komandna dugmeta. Klikom na prvo komandno dugme umeće se u ListBox sadržaj
More informationWindows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365
Windows 8 Licenciranje, razlike u verzijama Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje Serverski proizvodi Server 2012, System centar 2012, SQL 2012, Sharepoint
More informationPROGRAMIRANJE. Teme. Packages Reference objekata Inheritance nasljeđivanje Exceptions. Amir Hajdar
PROGRAMIRANJE Amir Hajdar Teme 2 Packages Reference objekata Inheritance nasljeđivanje Exceptions Packages API Application Programmer Interface Sve klase ponuđene u sklopu Java jezika, uključujući i kompajler
More informationL25.1 Introduction... 2
Department of Computer Science COS121 Lecture Notes: L25 Chain of Respsibility Design Pattern 29 and 30 September 2014 Copyright c 2012 by Linda Marshall and Vreda Pieterse. All rights reserved. Ctents
More informationUnaprjeñenje sigurnosti u mrežama pružatelja
Unaprjeñenje sigurnosti u mrežama pružatelja usluga Miroslav Šimić miroslav.simic@snt.hr CCIE #19429 Agenda Zaštita mrežne infrastrukture Zaštita na rubovima mreže Uočavanje i sprječavanje napada Agenda
More informationPROCENA UGROŽENOSTI METODOM INDEKSA POŽARA I EKSPLOZIJE (F&EI) DOW INDEKS
PROCENA UGROŽENOSTI METODOM INDEKSA POŽARA I EKSPLOZIJE (F&EI) DOW INDEKS Risk Assessment with Fire and Explosion Index (F&EI) Method - DOW Index Miroslav Gojić d.o.o. Termoenergo inženjering, Beograd
More informationMarko Milošević.
Marko Milošević marko643@gmail.com marko.milosevic@pmf.edu.rs ESPB 8 Bodovanje Domaći Kolokvijumi 2x10 2x20 Završni ispit 40 Konsultacije sreda 13-14 četvrtak 16-17 Šabloni dizajna (Design Patterns) Metrika
More informationvar Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.
1 PANEL komponenta kontejnerska, slična GropBox. Roditeljska komponenta za komp. postavljene na nju. Zajedno se pomeraju. Caption svojstvo za naziv; Alighment pomera svojstvo Caption levo i desno; Align
More informationObjektno orijentisano programiranje
Matematički fakultet, Univerzizet u Beogradu Katedra za računarstvo i informatiku Objektno orijentisano programiranje vežbe Biljana Stojanović Nemanja Mićović Nikola Milev 1 Stringovi String literali i
More information4. Fajlovi i direktorijumi
4.2 stat, fstat i lstat funkcije 4. Fajlovi i direktorijumi int stat(const char *path, struct stat *buf); int fstat(int fd, struct stat *buf); int lstat(const char *path, struct stat *buf); Ove 3 funkcije
More informationLekcija 4. Java programiranje sa bazama podataka. dr Svetlana Cvetanović
Lekcija 4 Java programiranje sa bazama podataka dr Svetlana Cvetanović JAVA PROGRAMIRANJE SA BAZAMA PODATAKA Uvod 01 02 03 04 Uvod JDBC Interfejsi Vežba: Preduslovi za pisanje Java koda Zaključak Kreiranje
More informationSingle Sign-On s Officeom 365 na Kineziološkom fakultetu Sveučilišta u Zagrebu
Single Sign-On s Officeom 365 na Kineziološkom fakultetu Sveučilišta u Zagrebu Stipe Gorenjak, Kineziološki fakultet Sveučilišta u Zagrebu e-mail: stipe.gorenjak@kif.hr Sponzori Ugasite mobitele. Hvala.
More informationRačunarske mreže treći razred
Tehnička škola 9. maj Bačka Palanka Računarske mreže treći razred I P a d r e s e IP adresa IP adresa predstavlja jedinstveni identifikator određenog čvora ili uređaja u IP mreži. IPv4 adresa ima dužinu
More information2. Programiranje (rad) u mreži
Sadržaj: 2. Programiranje (rad) u mreži 2.1 Adresa računara 2.1.1 Simbolička adresa 2.2 URL adresa 2.3 Soketi 2.3.1 Adresa soketa 2.3.2 Konekcija između dva programa 2.3.3 Povezivanje servera sa više klijenata
More informationPITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI
PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI 1. Enkapsulacija je podataka. skrivanje apstrakcija nasledivanje 2. Unutar deklaracije klase navode se: definicije funkcija clanica prototipovi (deklaracije) funkcija
More informationVariable Neighborhood Descent - VND (Metoda promenljivog spusta)
Variable Neighborhood Descent - VND (Metoda promenljivog spusta) Izabrati skup okolina N k, k = 1,..., k max koje će se koristiti za pretragu; Na slučajan način izabrati početno rešenje x X i postaviti
More informationInformation systems modeling. Tomasz Kubik
Information systems modeling Tomasz Kubik Prototype pattern Prototype pattern public interface Prototype extends Cloneable { public abstract Prototype cloneprototype() throws CloneNotSupportedException;
More information2. Linijska algoritamska struktura
Univerzitet u Nišu Građevinsko-arhitektonski fakultet Informatika 2 2. Linijska algoritamska struktura Milica Ćirić Blokovi za prikaz algoritma Algoritam se vizuelno može prikazati pomoću blok dijagrama,
More informationCommon Architectures and Design Patterns
Common Architectures and Design Patterns 1 Architectural Styles High-level abstractions of components and communication Even higher than data types, algorithmic pseudocode Also known as design patterns
More informationJava IMI PMF KG OOP 09 AKM. Izuzeci
Java 1 Izuzeci Definicija 2 Definition: An exception is an event that occurs during the execution of a program that disrupts the normal flow of instructions. It is meant to be more general that the term
More informationSberbank Business Online na Mozilla FireFox
Sberbank Business Online na Mozilla FireFox Verzija 1.6 Srpanj 2016. Sberbank d.d. Stranica 1 SADRŽAJ 1 INSTALACIJA... 2 2 POKRETANJE MOZILLE FIREFOX... 3 2.1 IMPORT SECURITY MODULA... 4 2.2 AUTOMATSKI
More information/*#include <iostream> // Prvi zadatak sa integralnomg ispita
/*#include // Prvi zadatak sa integralnomg ispita 27.01.2015 #include using std::setw; using std::cout; const int red(5), kolona(4); void unos(int[]); void ispis(int[][kolona]); float
More informationKodiranje GUI aplikacija u Visual C#
Kodiranje GUI aplikacija u Visual C# UVOD Uvod Kodiranje grafičke aplikacije u Visual C#: Ova lekcija se bavi dogadjajima, programiranjem dogadjaja. Daćemo jedan primer event-driven-programming-a, u vidu
More informationPVC Eco. Eco Prozori i Balkonska Vrata Bela Boja Dezeni drveta su 40% skuplji
PVC Eco Eco Prozori i Balkonska Vrata PVC prozori i Balkonska vrata od 5-komornik profilanemačkog proizvođača Trocal 70.A5 Niskoemisiono 2-slojno staklo 4+16+4mm, proizvođaća Guardian iz Luxemburga Profil:
More informationIMPLEMENTACIJA BEZBEDNE KLIJENT/SERVER KOMUNIKACIJE U PROGRAMSKOM JEZIKU JAVA ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU.
ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU IMPLEMENTACIJA BEZBEDNE KLIJENT/SERVER KOMUNIKACIJE U PROGRAMSKOM JEZIKU JAVA Diplomski rad Kandidat: Vanja Efremov 2008/196 Mentor: doc. dr Zoran Čiča
More informationCJENOVNIK OGLAŠAVANJA ZA ROTIRAJUĆE BANNERE NA NASLOVNICI
ZA ROTIRAJUĆE E NA NASLOVNICI ROTIRAJUĆI I / BILLBOARD (90x90px) 2/ BILLBOARD (90x0px) BILLBOARD (90x20px) 0 2 EXPANDING VIDEO (00x600) (00x20px) HALF PAGE (00x600px) 2 PEAL (00x00px) 0 FLOATER (00x00px)
More informationSigurnost u Windows 7. Saša Kranjac MCT
Sigurnost u Windows 7 Saša Kranjac MCT Agenda Stara, dobra*, (ne)sigurna vremena Novo (i bolje) u Windows 7 Sigurnosna poboljšanja i značajke + DEMO Što nam dolazi u Windows 8? OS podjela (08/2011) 40
More informationLekcija 09 Sakrivanje podataka, statički članovi, preklapanje funkcija i operatora. Miljan Milošević
Lekcija 09 Sakrivanje podataka, statički članovi, preklapanje funkcija i operatora Miljan Milošević SAKRIVANJE PODATAKA, STATIČKI ČLANOVI, PREKLAPANJE FUNKCIJA I OPERATORA 01 02 03 04 Uvod Učauravanje
More informationOracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu:
Database Programming with SQL kurs 2017 database design and programming with sql students slajdovi 7-1 Oracle Equijoin and Cartesian Product Prethodna sekcija se bavila upitima preko više od jedne tabele
More informationRekurzivne metode. Posmatrajmo rekurzivan metod kojim u objektu listbox1 klase ListBox upisujemo sve prirodne brojeve od 1 do datog n.
Rekurzivne metode Rekurzivan metod je onaj metod koji u nekoj svojoj instrukciji sadrži poziv samog sebe. Svakako prilikom kreiranja rekurzivnog metoda moramo voditi računa da ne dodje do beskonačne rekurzije
More informationRačunarska grafika-vežbe. 3 JavaFX animacija i interakcija
Računarska grafika-vežbe 3 JavaFX animacija i interakcija Zadatak1: Spirala+ Kolokvijum K1 09/10, zadatak prerađen za JavaFX Napisati klasu koja sastavlja graf scene za crtanje centralno simetrične figure
More informationOBJEKTNO ORIJENTISANO PROGRAMIRANJE
OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 12: NASLEĐIVANJE Miloš Kovačević Đorđe Nedeljković 1 /17 OSNOVNI KONCEPTI - Statički i dinamički tipovi podataka - Prepisivanje metoda superklase - Polimorfizam
More information12. Uskladištene procedure (Stored Procedures)
12. Uskladištene procedure (Stored Procedures) Uskladištena procedura je skup SQL iskaza koji su kompajlirani i sačuvani u trenutku njenog kreiranja. Veoma su moćne i preko njih mogu da se izvršavaju sve
More informationJava IMI PMF KG OOP 09 AKM. Objekti i klase
Java 1 Objekti i klase Usage Modifiers 2 Uz varijable je moguće koristiti modifikatore static -označava varijablu koja je zajednička svim objektima koji su instance date klase final -definiše konstante
More informationLekcija 07 C++ funkcije, stringovi, imenski prostor, memorija i fajlovi. Miljan Milošević
Lekcija 07 C++ funkcije, stringovi, imenski prostor, memorija i fajlovi Miljan Milošević C++ FUNKCIJE, STRINGOVI, IMENSKI PROSTOR, UPRAVLJANJE MEMORIJOM I FAJLOVI 01 02 03 04 Uvod Reference Funkcije u
More informationObjektno Orijentisano Programiranje - C++
Elektronski fakultet u Nišu Objektno Orijentisano Programiranje - C++ Prof. Dragan Janković Elementi standardnog C++ okruženja Faze u razvoju C++ programa: Editor Preprocessor Disk Disk Program je kreiran
More informationProjektovanje Namenskih Računarskih Struktura 1. Sistemi zasnovani na Androidu
Univerzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Projektovanje Namenskih Računarskih Struktura 1 Sistemi zasnovani na Androidu Objektno orijentisani
More informationProgramiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010
Programiranje Programski jezik C prof.dr.sc. Ivo Ipšić 2009/2010 Sadržaj Ulazno-izlazne funkcije Datoteke Formatirane datoteke Funkcije za rad s datotekama Primjeri Datoteke komunikacija između programa
More informationSveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević
Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 08 Zvonimir Bujanović Slaven Kožić Vinko Petričević Uvod: (X)HTML i CSS Na ovim i idućim vježbama naučit ćemo osnove jezika za opisivanje
More informationProjektovanje web aplikacija
Projektovanje web aplikacija UVOD Arhitektura softvera: Arhitektura softvera Glavne komponente sistema i način na koji međusobno interaguju; Predstavlja deljeno razumevanje dizajna sistema od strane programera
More informationC++ minitutorial. Osnovni elementi i koncepti programskog jezika C++ uz primere
C++ minitutorial Osnovni elementi i koncepti programskog jezika C++ uz primere Sadržaj I. Ugrađeni tipovi podataka II. Doseg (scope) III. Životni vek objekta IV. Konverzija tipa (casting) V. Struktura
More informationRIP v2. Mr Nenad Krajnović Katedra za telekomunikacije
RIP v2 Mr Nenad Krajnović Katedra za telekomunikacije E-mail: krajko@etf.bg.ac.yu Istorijat Nastao kao pokušaj da se RIPv1 protokol popravi i prilagodi novim potrebama Definisan u okviru RFC-a 2453 Ima
More informationObjektno orjentirano programiranje
Objektno orjentirano programiranje Predavanje 4 Objektno orijentirani koncepti Konstruktori Metoda koja se poziva prilikom stvaranja novog objekta Svojstveni su OO programiranju Imaju isto ime kao i klasa
More informationOUR KNOWLEDGE FOR YOUR SUCCESS. Iskustva u razvoju i implementaciji ADF aplikacije
Iskustva u razvoju i implementaciji ADF aplikacije Sadržaj Opis aplikacije za AZ Mirovinski Fond Internacionalizacija aplikacije Integracija sa Oracle Reports Iskorištenje postojeće PL/SQL logike Kreiranje
More informationJava i Internet programiranje
Univerzitet u Novom Sadu Fakultet tehničkih nauka Katedra za računarske nauke i informatiku Branko Milosavljević Milan Vidaković Java i Internet programiranje Materijal za predmet Sintetski praktikum iz
More information16. Sigurnije programiranje
16. Sigurnije programiranje 16.1 Pretvorba tipova Pretvorba realnog broja u cijeli broj se može izvršiti naredbama: int i; double d; ili: i = (int) d; i = int(d); U cilju bolje kontrole pretvorbe tipova
More informationUSLOVI I CENE KORIŠĆENJA ZA TARIFNE PAKETE «PRENESI I SURFUJ+»
USLOVI I CENE KORIŠĆENJA ZA TARIFNE PAKETE «SURFUJ+» USLUGE U OKVIRU PAKETA pretpl ate sa pdvom pretplate ka mreža ma u Telenor mreži SMS poruka SURFUJ+ S 950 791.67 150 5,000 250 SURFUJ+ M 1,250 1,041.67
More information1/42 SQL DDL. CREATE ALTER DROP Schema Table Tablespace Index View Domain Constraint... DECLARE TABLE (DB2)
1/42 SQL DDL CREATE ALTER DROP Schema Table Tablespace Index View Domain Constraint... DECLARE TABLE (DB2) 2/42 SQL DDL: CREATE SCHEMA CREATE SCHEMA ime-sheme [ AUTHORIZATION ime-vlasnika-sheme] [ CREATE
More informationLekcija 11 Polimorfizam, Apstrakcija, Šabloni. Miljan Milošević
Lekcija 11 Polimorfizam, Apstrakcija, Šabloni Miljan Milošević POLIMORFIZAM, APSTRAKCIJA, ŠABLONI 01 02 03 04 Uvod Uvod u Virtuelne funkcije Apstrakcija polimorfizam podataka Apstraktne klase Pokazivači
More informationProjektovanje web aplikacija - uzorci za podatke -
Projektovanje web aplikacija - uzorci za podatke - TABLE DATA GATEWAY (PROLAZ KA TABELI PODATAKA) Table Data Gateway uzorak Objekat koji enkapsulira pristup tabeli u bazi podataka (SQL se nalazi samo u
More informationModbus TCP i dva PLC S7 1200
Industrijski sistemi i protokoli Modbus TCP i dva PLC S7 1200 1 Modbus TCP i dva PLC S7 1200 Laboratorijski deo - obavezno: Detaljno proučiti i testirati već napravljeni projekat za PLC-ove, koji se nalazi
More informationString. String. Kreiranje string objekta pomoću string literala (konstanti) Kreiranje string objekta
String string ili znakovni niz (string) nije niz znakova u Javi su stringovi klase String paketa java.lang!!! Usporedba: char gf = G ; Niz znakova String char [] gf = { G, e, o, d, e, t, s, k, i ; String
More information