Skip to main content

2018 januari examen

Vraag 1:

Gegeven code van een klasse om een bestand in te lezen per letter (character), code van een klassen om tekst (String) letter per letter uit te lezen, code van de launcher, een UML-diagram van het decorator-patroon. Men wilt bovenop het inlezen een bestand/tekst, deze kunnen manipuleren, zo bijvoorbeeld de tekst omzetten naar camelcase, spaties tussen iedere letter plaatsen, alle spaties verwijderen...

  • Ontwerp met behulp van het decorator-patroon een UML om dit te implementeren.
  • Schrijf de code can de nieuwe klassen uit
  • Schrijf de code van de launcher uit als je in de tekst eerst alle spaties wilt verwijderen, dan in camelcase wilt zetten en tenslotte tussen iedere letter een spatie wilt plaatsen (dit is een zin -> ditiseenzin -> Ditiseenzin ->D i t i s e e n z i n)

Vraag 2:

Gegeven een UML-diagram voor het spel Tic-Tac-Toe, dat het MVC model volgt.

  • Welke patronen herken je in dit model? Benoem ze en zeg welke klassen er deel van uit maken
  • Duid voor iedere klasse aan of het Model, View of Controller is
  • Stel een user klikt een vak aan; Welke methodes worden er achter elkaar uitgevoerd, en welke klassen roepen deze methodes aan?

Vraag 3:

Gegeven een stuk code, ruwweg de volgende:

public class Compression {
    public void compress(List<File> files, File targetFile, String algorithm) {
        if (algortithm.equals("zip") {
            // Do ZIP compression
        } else if (algorithm.equals("rar") {
            // Do RAR compression
        } else {
            throw new IllegalArgumentException("Algorithm not found");
        }
    }
}
  • Welk principe wordt hier het meest geschonden en waarom?
  • Hoe zou je dit oplossen? Teken een UML-diagram.