Indholdsfortegnelse
Tænkeøvelse: Identificer potentielle interfaces i et programmeringsprojekt
Mål: Denne øvelse hjælper dig med at forstå, hvordan du kan bruge interfaces i C# til at skabe fleksibel og genbrugelig kode. (Her arbejder man sammen i grupper af 2 personer)
Læringsmål
- Forstå hvordan interfaces kan bruges til at definere fælles funktionalitet, som flere klasser skal implementere.
- Anvende interfaces til at opnå polymorfi, hvor forskellige objekter kan behandles ensartet på et højere niveau.
- Reducere afhængigheden mellem komponenter ved at implementere løs kobling i systemet.
Scenario: Byg et system til styring af forskellige transportmidler
Forestil dig, at du skal bygge et program, som håndterer forskellige typer transportmidler – biler, både, cykler, fly osv. Hver transporttype har nogle fælles funktioner, men de implementeres på forskellige måder afhængigt af transporttypen.
Trin 1: Tænk på de fælles funktioner
- Hvilke fælles funktioner kunne alle transportmidler have?
- Hvordan ville du senere implementere disse funktioner for forskellige transportmidler?
- Diskutér, hvordan bilens funktioner kan adskille sig fra en båd eller en cykel.?
Trin 2: Brainstorm et Interface
Kom på et interface, der kan beskrive de funktioner, du har diskuteret. Dette interface skal definerer de nødvendige metoder, som alle transportmidler skal implementere.
Trin 3: Implementer de forskellige transportmidler
Nu kan du tænke på, hvordan de forskellige transportmidler (bil, båd osv.) implementerer dette interface. Her er et eksempel på, hvordan det kan gøres for en bil og en båd:
Trin 4: Diskutér fordelene ved at bruge et Interface
Hvordan gør brugen af et interface koden mere fleksibel og genbrugelig?
- Hvordan ville det være at håndtere disse transportmidler uden et interface?
- Hvordan gør interfacet det lettere at tilføje nye transportmidler som fly, cykler eller tog uden at ændre eksisterende kode?
- Hvad sker der, hvis du ændrer implementeringen af et transportmiddel (f.eks. ændrer hvordan bilen accelererer)? Hvordan gør interfaces det lettere at ændre implementeringen uden at bryde eksisterende kode?
