Voorbereiding-Quiz
Hieronder zie je hoe je de aggregate Car in een klassendiagram kan weergeven. Onder elk diagram vind je een optionele uitklapbalk met tabs voor de broncode en een natuurlijke taal beschrijving. Dit stelt je in staat diagram wat beter te begrijpen, zelf met online tools het diagram aan te passen of uit te breiden en is voor accessibility (A11Y). Zie Bijlagen > Toegankelijke diagrammen voor meer info.
4 Van Domain Story naar classes
📖 Lees "Domain Storytelling" hoofdstuk 12 - sectie "Implementing the Domain Model" tot Listing 12.4 (pagina 44 t/m 46 - 3 pagina's) uit de Reader DoEx.
❓ Beantwoord hierna onderstaande quiz vragen om je begrip te toetsen.
Quiz H12 - Implementing the domain model
Deze quiz helpt je toetsen of je de bron echt hebt bekeken/gelezen en begrepen. Zo niet: bekijk/lees de bron opnieuw. Gebruik deze quiz niet als 'gaming' voor de toets; de toetsvragen zijn inhoudelijk anders.
Voorbeelduitwerking - Vertoning
import java.util.ArrayList;
import java.util.List;
public class Vertoning {
private Long id;
private List<Stoel> beschikbareStoelen;
private List<Stoel> gereserveerdeStoelen;
public Vertoning(Long id) {
this.id = id;
this.beschikbareStoelen = new ArrayList<>();
this.gereserveerdeStoelen = new ArrayList<>();
}
public Long getId() {
return id;
}
/**
* Haal de (nog) beschikbare stoelen op.
* In dit voorbeeld is het gewoon de lijst,
* maar in een echte toepassing zou je hier
* mogelijk extra logica hebben.
*/
public List<Stoel> getBeschikbareStoelen() {
return beschikbareStoelen;
}
public List<Stoel> getGereserveerdeStoelen() {
return gereserveerdeStoelen;
}
/**
* Voorbeeld van het reserveren van een stoel:
* - Haal de stoel uit de lijst beschikbare stoelen
* - Roep reserveer() aan op de Stoel
* - Voeg de stoel toe aan de lijst gereserveerde stoelen
*/
public void reserveerStoel(Stoel stoel) {
if (beschikbareStoelen.contains(stoel)) {
beschikbareStoelen.remove(stoel);
stoel.reserveer();
gereserveerdeStoelen.add(stoel);
} else {
System.out.println("Stoel is niet beschikbaar voor reservering.");
}
}
}