Klicka här för att ladda ner PDF:n
Uppgifter
Uppgift 1: Identifiera mönster i diagram och kod
I laboration 5 fick du tillgång till en massa spännande källkod och UML-diagram. Givet detta, leta efter följande mönster:
- Model - View - Controller
- Entity - Control - Boundary
- Singleton
- Builder
- Façade
- Composite
- State
- Observer
Vilka hittar du? Vilka är klockrena/modifierade? Vilka saknas? Är alla relevanta?
Uppgift 2: Bygg en mediaspelare med State pattern
Din uppgift är att bygga en väldigt enkel mediaspelare. Den är så pass enkel att allt den kan göra är att skriva ut vad den gör när den går in i och/eller lämnar ett tillstånd, snarare än faktiskt spela upp någon musik eller video. Utgå från följande tillståndsdiagram:

Identifiera de tillstånd som behövs och modellera dem. Notera även vilka tillståndsövergångar som är tillåtna och vilka som saknas. En exempelmodell (för en bankomat i Java, men det är analogt med er Python-lösning) ser ut så här:

Det finns ett flertal sätt att implementera State i Python, men ett rimligt exempel finns här. Hur implementerar ni er lösning?