Een autohandelaar handelt in auto’s. Het bijhouden van de voorraad (welke auto’s beschikbaar zijn) is iets dat gemakkelijk geautomatiseerd kan worden. Vandaag schrijven we een eenvoudige versie van een systeem dat mogelijk door handelaren gebruikt kan worden.
Maak een klasse Dealership
met twee publieke methoden:
void addCar(Car newCar)
waarmee je een nieuwe auto kunt registreren bij de verkoper.int getNrOfCarsByBrand(String brand)
waarmee je het aantal auto’s van een bepaald merk kunt opvragen.Merk op dat de addCar
methode een Car
instantie als argument vereist, dus maak ook deze Car
klasse. Deze klasse heeft verder slechts twee attributen: license plate (kenteken) en brand (merk). Maak deze attributen onveranderlijk door alleen getters en een constructor aan je klasse toe te voegen.
Nadat je ervoor gezorgd hebt dat je programma werkt (gebruik onze code of voeg zelf wat dummygegevens toe), breid je deze uit door een een extra controle aan het systeem toe te voegen: Een dealer kan geen twee auto’s hebben met dezelfde hetzelfde kenteken. Als je een auto met hetzelfde kenteken (ongeacht het merk) probeert toe te voegen aan een Dealership
instantie (die al een auto met dat kenteken heeft), moet er een IllegalArgumentException gegooid worden. Pas je programma aan en test of deze controle goed werkt.
Een sequence diagram laat de flow van een actie door een programma zien. Het toont welke class welke andere class aanroept en hoe lang die class actief is gedurende de uitvoering.
Er kunnen verschillende niveau’s van detail gebruikt worden afhankelijke van hoe dicht bij implementatie ze zijn.
Een instantie bestaat niet totdat deze gemaakt is, pas dan kan het worden gebruikt in opvolgende statements.
Hieronder is een voorstel van hoe getNrOfCarsByBrand
zou kunnen werken met hoe de classen met elkaar interacteren. Wat hier niet word getoond is hoe we op het aantal auto’s komen, dit zul je zelf moeten bedenken.