
Objektorienterad design och designmönster
Användning av designmönster (Design Patterns) för att skapa återanvändbar och underhållbar kod.
Kort sammanfattning:Designmönster är beprövade lösningar på återkommande problem inom mjukvarudesign. För elever i årskurs 3 innebär detta att gå från att skriva fungerande kod till att skriva professionell, underhållbar kod. Vi fokuserar på hur objektorienterade principer som inkapsling och polymorfism används i praktiken genom mönster som Singleton, Factory och Observer.
Om detta ämne
Designmönster är beprövade lösningar på återkommande problem inom mjukvarudesign. För elever i årskurs 3 innebär detta att gå från att skriva fungerande kod till att skriva professionell, underhållbar kod. Vi fokuserar på hur objektorienterade principer som inkapsling och polymorfism används i praktiken genom mönster som Singleton, Factory och Observer.
Detta ämne kopplar direkt till kursmålen om systemering och design. Genom att använda designmönster lär sig eleverna att kommunicera kring arkitektur på en högre abstraktionsnivå. Eleverna förstår värdet av dessa mönster bäst när de får samarbeta kring att lösa designproblem och se hur ett mönster kan förenkla framtida ändringar i koden.
Nyckelfrågor
- Vad är ett designmönster och varför används det?
- Hur tillämpar man Singleton och Observer-mönstren?
- Hur bidrar objektorienterad design till bättre mjukvara?
Se upp för dessa missuppfattningar
Vanlig missuppfattningAtt man ska använda så många designmönster som möjligt.
Vad man ska lära ut istället
Överdriven användning leder till onödig komplexitet (over-engineering). Genom diskussioner om 'YAGNI' (You Ain't Gonna Need It) lär sig eleverna att välja mönster med omsorg.
Vanlig missuppfattningAtt Singleton bara är ett sätt att skapa globala variabler.
Vad man ska lära ut istället
Singleton handlar om att kontrollera instansiering, inte bara åtkomst. Genom att analysera trådsäkerhet och resursdelning förstår eleverna mönstrets verkliga syfte.
Idéer för aktivt lärande
Se alla aktiviteter→Gallergång
Mönster-matchning
Visa olika kodexempel och arkitekturdiagram på väggarna. Eleverna går runt i grupper och identifierar vilket designmönster som används eller skulle kunna lösa det specifika problemet på bilden.
Utforskande cirkel
Refaktorerings-utmaningen
Ge eleverna en 'spagettikod' med många if-satser. Deras uppgift är att i par skriva om koden med hjälp av ett lämpligt designmönster, till exempel Strategy eller State, för att göra den mer flexibel.
Rollspel
Observer-mönstret live
En elev spelar 'Subject' och flera andra spelar 'Observers'. När Subject ändrar sitt tillstånd (t.ex. byter färg på en lapp) måste alla Observers reagera omedelbart. Detta visualiserar händelsestyrd programmering.