Elektronski fakultet Niš 

Katedra za Računarstvo 

 
 
 
 

 

S T R A T E G Y  

O B R A Z A C

 

 

Predmet: 

 

Projektni obrasci

 

 

 

 

 

 

 

 

 

Student 

Mentor 

Aleksandar Stanković                                                          Prof.dr Dejan Rančić 

Br. Indeksa: 11891 

 

SADRŽAJ 

 

1. Uvod   

Strana 2 

2. Obrazac Strategy 

Strana 2 

3. Ključne karakteristike obrasca Strategy 

Strana 2

 

4. Rešavanje praktičnih problema uz pomoć 
    obrasca Strategy 

Strana 4

 

     4.1Pristup obradi novih zahteva

  

Strana 4

 

     4.2 Početni zahtevi primera elektronske prodaje  

Strana 5

 

     4.3 Obrada novih zahteva 

Strana 6

 

5. Upotreba obrasca Strategy

  

Strana 9

 

6.Primeri kodova u različitim programskim jezicima  

Strana 10

 

     6.1 Primer koda u jeziku C# 

Strana 10

 

     6.2 Primer iz stvarnog sveta

  

Strana 12

 

     6.3 Primer koda u jeziku Java

  

Strana 14

 

7. Zaključak   

Strana 15 

8. Literatura  

Strana 15 

 

 

 

 

 

 

 

 

 

 

 

background image

 

Učesnici i

 

 

-     Klasa 

Strategy

 

odreĎuje kako se koriste različiti algoritmi. 

saradnici: 

-     Klasa 

ConcreteStrategy

 realizuju različite algoritme. 

-

 

Klasa 

Context

  koristi  specifičnu  klasu 

ConcreteStrategy

  pomoću 

reference  tipa 

Strategy

.  Klase 

Strategy

  i 

Context

  zajedno  realizuju 

izabrani algoritam. 

Context

 prosleĎuje zahteve klijenta klasi 

Strategy

.

 

 
Posledice: 

-    Obrazac Strategy odreĎuje porodicu algoritma. 
-

 

Strukture switch i/ili uslovi mogu se eliminisati.

 

-

 

Morate koristiti sve algoritme na isti način (svi moraju imati isti interfejs). 
Interakcija  izmeĎu  klasa 

ConcreteStrategies

  i 

Context

  može 

zahtevati dodavanje pristupnih metoda klasi 

Context

.  

 

 

Realizacija

Neka  klasa  koja  koristi  algoritam  (

Context

)  sadrži  objekat  apstraktne  klase 

(

Strategy

) čija apstraktna metoda odreĎuje kako se koristi algoritam. Svaka 

izvedena klasa  realizuje  odgovarajući  algoritam.  Napomena:  ta metoda ne bi 
bila  apstraktna  ako  postoji  podrazumevano  ponašanje.U  prototipu  obrasca 
Strategy,  klijent  je  odgovoran  za  izbor  odreĎene  realizacije  i  prenosi  je 
kontekstu obrasca. 

 

Slika 1. – Standardan, pojednostavljen prikaz obrasca Strategy. 

 

 

 

 

 

 

 

4.

 

Rešavanje praktičnih problema uz 

pomoć Strategy obrasca 

 

U ovom primeru počinjemo da proučavamo nov praktičan primer elektronske prodaje 

(prodaje  preko  Interneta).  TakoĎe,  počinjemo  da  rešavamo  probleme  pomoću  obrasca 
Strategy. 

4.1 Pristup obradi novih zahteva 

 

U životu, a i u softverskim aplikacijama, često moramo da odlučujemo koji je pristup 

izvršenju  zadataka ili  rešavanju  problema odgovarajući. Većina nas je naučila da je biranje 
najkraćeg puta, na kratke staze, može dovesti do ozbiljnih dugoročnih problema. Na primer, 
svi moraju da zamene ulje u automobilu posle odreĎenog broja preĎenih kilometara. Možda 
ne menjam ulje svakih 5000 kilometara, ali neću čekati ni 50000 (ako bih to učinio, ne bi bilo 
potrebe da ikad više menjam ulje: auto ne bi radio). Posmatrajmo pisaći sto – mnogi od nas 
odlažu na njega svakojake dokumente. To funkcioniše dobro na kratke staze, ali dugoročno, 
sve je teže snaći se meĎu gomilom papira koja raste. Nevolje često nastupaju na duge staze 
usled neoptimalnih kratkoročnih rešenja. 

Nažalost,  mnogi  programeri  još  nisu  naučili  te lekcije. U mnogim projektima pažnja se 

obraća  samo  na  hitne,  goruće  potrebe,  i  ne  razmišlja  se  o  budućem  održavanju.  Postoji 
nekoliko razloga zbog kojih se u projektima zanemaruju dugoročna pitanja, kao što su lakoća 
održavanja ili mogućnost menjanja. Česti izgovori su: 

 

'' Zaista ne možemo da predvidimo kako će se zahtevi menjati.'' 

 

'' Ako pokušamo da shvatimo kako će se stvari menjati, ostaćemo zauvek na analizi.'' 

 

''Ako  pokušamo  da  pišemo  program  kojem  možemo  dodati  novu  funkcionalnost, 
ostaćemo zauvek na projektovanju.'' 

 

''Nemamo ni vremena ni novca za to.'' 

Čini se da je izbor: 

 

Preterati sa analiziranjem ili projektovanjem – to nazivamo ''paraliza analizom''. 

 

 Počnimo  da,  pišemo  kod  ne  obazirući  se  na  dugoročna  pitanja,  a  zatim  preĎimo  na 
drugi projekat pre nego što ta kratkovidost izazove previše problema. To nazivamo: 
 

'' napustite brod (odmah po isporučivanju)! ''

 

Pošto je uprava programerskih odeljenja pod pritiskom da isporuči program, a ne da 

ga održava, možda ti rezultati i  nisu  iznenaĎujući.  MeĎutim,  ako se za trenutak zamislimo, 
postaje očigledno da sistem razmišljanja sprečava mnoge programere da vide druge opcije – 
oni  smatraju  da  je  projektovanje  koje  omogućava  promene  skuplje  od  projektovanja  koje 
promene zanemaruje. 

Želiš da pročitaš svih 16 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti