Øvelse: Fleksibelt notifikationssystem (med interfaces)

Baggrund

En virksomhed vil kunne sende notifikationer til kunder via forskellige kanaler: SMS, e-mail eller push-notifikation.

Her skal vi bruge interfaces:


Opgave 1

1. Definér interface

Lav et interface INotifier med metoden:

void Send(String recipient, String message);

2. Implementér forskellige notifikatorer

3. NotificationService

4. Afprøvning


Opgave 2: UML-diagram for Notifikationssystemet

Baggrund

Efter at have implementeret dit notifikationssystem med interfaces, skal du nu visualisere systemet med et UML-diagram. Dette hjælper med at forstå, hvordan klasser og interfaces hænger sammen, og hvordan polymorfi via interface fungerer.

Opgave 2

Tegn UML-diagrammet

Lav et UML-diagram der viser:

2. UML-specifikation for interface

Når man tegner et interface i UML:

Tommelfingerregler

Når skal man bruge interfaces vs. arv?

Situation Brug interface Brug arv
Klasser er helt forskellige, men har fælles adfærd
Klasser har fælles tilstand og fælles kode
Klassen skal kunne udføre flere roller/adfærd samtidig ✅ (flere interfaces) ❌ (kun én baseklasse)
Der er en klar „er-en“-relation
Du vil have løs kobling → nemt at udvide med nye typer