We gaan een systeem bouwen voor een vervoersbedrijf welke zowel passagiers als goederen kan vervoeren. In deze opdracht maak je een klasse TransportCompany
. Jouw taak is om code duplicatie te voorkomen en het ontwerp ook geschikt te maken voor de toekomst. Het moet dus later makkelijk zijn nieuwe functionaliteiten aan de applicatie toe te voegen.
Het gaat in deze opdracht om het datamodel van de vervoersmiddelen en de keuze voor het gebruik van interfaces en/of overerving. We beperken daarom het teken- en printwerk. Omdat deze opdracht gaat over het modelleren, raden we sterk aan om het klassendiagram eerst zelf te tekenen. Lees onderstaande beschrijving goed door, teken het klassendiagram en begin dan met implementeren.
De voornaamste functionaliteit zijn:
Je moet op z’n minst deze methoden implementeren:
loadPassengers(int amount)
en/of loadCargo(double weightInTonnes)
void addVehicle(Vehicle v)
ArrayList<Vehicle> getVehiclesWithRoomForPassengers(int amountOfPassengers)
ArrayList<Vehicle> getVehiclesWithRoomForCargo(int weightInTonnes)
Dit moet je nog weten over het transportbedrijf:
Truck
is uitsluitend geschikt voor het vervoer van goederen en heeft bepaalde dimensies (hoogte, breedte, diepte) die relevant zijn om op te slaan. Een vrachtwagen mag maximaal 30 ton dragen, maar dit maximum kan uiteraard ook kleiner zijn.Bus
is uitsluitend gericht op het vervoer van passagiers en kan dus geen cargo vervoeren. Alle bussen hebben ook nog een beschrijvende naam en een maximum bereik (in km).Boat
is ook uitsluitend gericht op het vervoer van passagiers (en kan dus ook geen cargo hebben). Ook boten hebben nog een beschrijvende naam en het aantal zwemvesten dat aan boord te vinden is. Ook wordt er geregistreerd of er een koelkast aan boord is. Het aantal zwemvesten bepaalt uiteraard hoeveel mensen er maximaal mee mogen.ContainerShip
kan ook alleen goederen vervoeren en bevat als enige extra informatie hoeveel containers er geladen zijn (en kunnen worden). Elke container kan maximaal 25 ton gewicht dragen.Train
is een combinatie van beiden en kan dus zowel passagiers als goederen vervoeren. Dit werkt op basis van goederenwagons en passagier wagons. Van elke trein moet je dus op slaan hoeveel goederen en hoeveel passagier wagons er aanwezig zijn. In elke passagier wagon kunnen 50 mensen zitten, in elke goederenwagon kan maximaal 200 ton vervoerd worden.