Задатак — Резервација биоскопске пројекције

← Недеља 4

Направити мали објектни модел за резервацију места у биоскопу.

Потребне су најмање следеће класе:

  • Film — наслов и трајање у минутима;
  • Projekcija — филм, назив сале, цена карте;
  • Sediste — ред и број седишта;
  • Gledalac — име и презиме;
  • Rezervacija — гледалац, пројекција и седиште.

Правила

  1. Један Film може да се приказује у више различитих пројекција.
  2. Једна Projekcija се односи на тачно један филм.
  3. Rezervacija мора да зна за коју пројекцију и које седиште важи.
  4. Sediste након креирања не треба да мења ред или број.
  5. Film након креирања не треба да мења наслов или трајање.
  6. Rezervacija треба да има методу opis() која саставља читљив опис резервације.
  7. Немојте копирати податке из Film у Projekcija и из Projekcija у Rezervacija ако је довољно сачувати референцу на одговарајући објекат.

Пример коришћења може да изгледа овако:

Film film = new Film("Dina", 166);
Projekcija projekcija = new Projekcija(film, "Sala 3", 650);
Sediste sediste = new Sediste(7, 12);
Gledalac gledalac = new Gledalac("Ana", "Jovanovic");

Rezervacija rezervacija = new Rezervacija(
        gledalac,
        projekcija,
        sediste
);

System.out.println(rezervacija.opis());

Размислити пре кодирања

  • Који односи су HAS-A?
  • Може ли исти Film објекат да користи више Projekcija објеката?
  • Које класе природно могу да буду непроменљиве?
  • Ко је одговоран за форматирање података о седишту?
  • Да ли Rezervacija треба директно да приступа пољима класе Film?
  • Који посао Rezervacija може да делегира објектима које садржи?

Додатак

Додати класу BioskopskaKarta која има:

  • резервацију;
  • јединствени ID карте.

Карта треба да понуди метод opis() користећи постојеће објекте, без дуплирања њихових података у нова поља.

Самостални део — Позајмљена опрема

Библиотека опреме позајмљује фотоапарат кориснику. Позајмица треба да сачува адресу испоруке у тренутку настанка, иако корисник касније може да се пресели. Самостално одредити типове.

Критеријум провере: Промена тренутне адресе корисника не мења постојећу позајмицу. Нацртати референце пре и после промене; образложити дељење наспрам копирања.

Предати мали Main са демонстрацијом и кратко образложење одлука. У овом делу нису задати називи класа или обавезни обрасци; образложено једноставније решење је прихватљиво. Најпре дефинисати уговор и очекивани резултат, па имплементирати.