Задатак — Резервација биоскопске пројекције
Направити мали објектни модел за резервацију места у биоскопу.
Потребне су најмање следеће класе:
Film— наслов и трајање у минутима;Projekcija— филм, назив сале, цена карте;Sediste— ред и број седишта;Gledalac— име и презиме;Rezervacija— гледалац, пројекција и седиште.
Правила
- Један
Filmможе да се приказује у више различитих пројекција. - Једна
Projekcijaсе односи на тачно један филм. Rezervacijaмора да зна за коју пројекцију и које седиште важи.Sedisteнакон креирања не треба да мења ред или број.Filmнакон креирања не треба да мења наслов или трајање.Rezervacijaтреба да има методуopis()која саставља читљив опис резервације.- Немојте копирати податке из
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 са демонстрацијом и кратко образложење одлука. У овом делу
нису задати називи класа или обавезни обрасци; образложено једноставније решење
је прихватљиво. Најпре дефинисати уговор и очекивани резултат, па имплементирати.