Uvod

U prethodnoj lekciji, bavili smo se rešavanjem problema koristeći paradigmu objektno orijentisanog programiranja (OOP), što je vrlo slično načinu na koji ljudi rešavaju probleme u stvarnom svetu. Sada ćemo se fokusirati na identifikovanje objekata i određivanje redosleda u kojem će oni sarađivati kako bi rešili određeni problem.

Koraci za identifikovanje i postavljanje objekata:
  1. Analiza problema: Prvi korak je pažljiva analiza problema koji treba da rešimo. Ključ je razumeti koji zadatak treba izvršiti i koje su osnovne komponente potrebne za rešenje problema. U stvarnom životu, te komponente često možemo prepoznati kao stvarne objekte, dok ih u OOP-u identifikujemo kao klase.

  2. Identifikovanje objekata: Svaki problem može biti razbijen na manje, konkretne entitete ili objekte. Na primer, ako treba napraviti sistem za biblioteku, neki od ključnih objekata bi mogli biti:

    • Knjiga
    • Član
    • Bibliotekar

  3. Definisanje uloga objekata: Svaki objekat ima određenu ulogu u rešenju problema. Moramo razumeti šta svaki objekat radi i kako doprinosi konačnom rešenju. Na primer, u biblioteci, član pozajmljuje knjige, dok bibliotekar vodi evidenciju o pozajmljivanju.

  4. Utvrđivanje odnosa između objekata: Objekti ne rade izolovano. Oni međusobno komuniciraju. Moramo odrediti kako će svaki objekat "pričati" sa drugim objektima. To se obično ostvaruje putem metoda koje svaki objekat nudi. Na primer:

    • Član može pozajmiti knjigu od bibliotekara.
    • Bibliotekar dodaje informaciju o pozajmljivanju u sistem.

  5. Postavljanje objekata u sekvencu: Da bi sistem radio, potrebno je odrediti pravilan redosled akcija. Ovaj korak osigurava da objekti međusobno pravilno sarađuju. U biblioteci, prvo će član zahtevati knjigu, zatim će bibliotekar proveriti da li je knjiga dostupna, pa će se na kraju knjiga zadužiti.

  6. Povezivanje sa kodom: Kada smo identifikovali objekte i definisali njihove uloge i međusobne odnose, možemo ih predstaviti kao klase u kodu. Svaka klasa ima svoje atribute (podatke) i metode (funkcije).

Primer 1: Bankarska transakcija

Razmotrimo jednostavan primer bankarskog sistema. Ključni objekti mogu biti:

  • Klijent
  • Račun
  • Transakcija

U ovom slučaju, proces rešenja problema može izgledati ovako:

  • Klijent želi izvršiti transakciju.
  • Sistem proverava stanje na računu.
  • Transakcija se izvršava ako stanje na računu dozvoljava.

Svaki objekat ima specifične uloge, a pravilnim redosledom akcija sistem funkcioniše bez grešaka.

Primer 2: Online prodavnica

Zamislimo da pravimo online prodavnicu. Koje su glavne stvari koje će korisnici raditi na sajtu? Oni će:

  1. Pregledati proizvode.
  2. Dodavati proizvode u korpu.
  3. Završiti kupovinu i poslati narudžbinu.

Iz ovih aktivnosti možemo identifikovati ključne objekte:

  • Korisnik: osoba koja koristi sajt.
  • Proizvod: stvar koju korisnik želi da kupi.
  • Korpa: mesto gde korisnik stavlja proizvode.
  • Narudžbina: konačan rezultat kupovine.
Svaki objekat ima osobine koje ga opisuju i akcije koje može da izvršava.
Primeri objekata:

Proizvod

Korisnik

  • Osobine proizvoda:

    • Naziv
    • Cena
    • Opis
    • Količina na stanju
  • Akcije proizvoda:

    • Prikazivanje detalja proizvoda
    • Dodavanje u korpu
  • Osobine korisnika:

    • Ime
    • Email
    • Adresa za dostavu
  • Akcije korisnika:

    • Prijava na sajt
    • Pregled proizvoda
    • Kupovina
Da bi sistem funkcionisao pravilno, važno je postaviti objekte u ispravnu sekvencu – redosled po kojem će se radnje obavljati. Ova sekvenca obezbeđuje da svaki objekat radi u pravom trenutku.

Primer sekvence za kupovinu proizvoda:

  1. Korisnik se prijavljuje na sajt.
  2. Korisnik pregleda proizvode i bira jedan proizvod.
  3. Proizvod se dodaje u korpu.
  4. Korisnik proverava sadržaj korpe.
  5. Korisnik obavlja kupovinu i kreira narudžbinu.
  6. Narudžbina se šalje na obradu.

Ova sekvenca jasno pokazuje kako objekti (korisnik, proizvod, korpa, narudžbina) rade zajedno kako bi omogućili korisniku da obavi kupovinu.


Zadatak 1:
  1. Identifikovati objekte za problem upravljanja restoranom (npr. Gosti, Narudžbina, Kuvar).
  2. Definisati uloge tih objekata i kako međusobno komuniciraju.
  3. Napisati jednostavan pseudokod (sekvencu koraka) za redosled akcija koji rešava problem naručivanja hrane u restoranu.
Zadatak 2:
  1. Identifikovati objekte za web stranicu koja omogućava korisnicima da iznajmljuju filmove. Koji su ključni objekti (npr. film, korisnik, korpa)?
  2. Napisati osobine i akcije za svaki objekat.
  3. Osmisliti sekvencu koraka koje korisnik mora da prati kako bi iznajmio film. U kom redosledu objekti treba da funkcionišu?

Last modified: Tuesday, 1 October 2024, 9:09 PM