@startuml hl-program

skinparam dpi 400

class HighscoreList {
    - int maxSize
    - List<Integer> results

    + HighscoreList(int)
    + int size()
    + int getElement(int)
    + void addResult(int)
    + void addHighscoreListListener(HighscoreListListener)
    + void removeHighscoreListListener(HighscoreListListener)
}

interface HighscoreListListener {
    void listChanged(HighscoreList, int)
}

class HighscoreListProgram {
    - HighscoreList highscoreList

    + void init()
    + void run()
}

HighscoreList -u-> "highscoreListListeners: *" HighscoreListListener
HighscoreListProgram ..l|> HighscoreListListener : "\t\t"

@enduml
