Ø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 ✅ ❌