76 lines
1.8 KiB
Markdown
76 lines
1.8 KiB
Markdown
<!--
|
|
title: Werzeug-Material-Ansatz
|
|
description: Folien für Werkzeug Material Ansatz in Programmieren 2
|
|
url: https://git.henriburau.de/tutorien/programmieren-2
|
|
header: Programmieren 2 **Tutorium**
|
|
footer: Henri Burau
|
|
-->
|
|
|
|
# Werzeug & Material Ansatz
|
|
|
|
---
|
|
|
|
# Grundlagen
|
|
|
|
Gibt Entwurfsregeln zum entwerfen von interaktiven Softwaresystemen vor. Die Klassen werden aufgeteilt in vier Elementtypen:
|
|
|
|
* **Materialien** : Anwendungsbezogene Gegenstände
|
|
* **Fachwerte** : Anwendungsbezogene unveränderliche Werte
|
|
* **Werkzeuge** : Grafische Benutzeroberfläche zum Bearbeiten von Materialien
|
|
* **Services** : Materialübergreifende fachliche Dienstleistungen
|
|
|
|
---
|
|
|
|
# Materialien
|
|
|
|
Gegenstände aus der Anwendungsdomäne mit denen gearbeitet wird. Müssen keine materiellen Gegenstände sein.
|
|
|
|
Darf zugreifen auf:
|
|
|
|
* Andere Materialien
|
|
* Fachwerte
|
|
|
|
Beispiel: Film, Abrechnung, ...
|
|
|
|
---
|
|
|
|
# Fachwerte
|
|
|
|
Unveränderliche Werte aus der Anwendungsdomäne. Es gibt einen Fachwert nur genau einmal.
|
|
|
|
Darf auf keine anderen Elemente zugreifen.
|
|
|
|
Beispiel: Zeit, Geldbetrag, ...
|
|
|
|
---
|
|
|
|
# Services
|
|
|
|
Bieten Dienstleistungen an die im gesamten System zur Verfügung stehen sollen. Es gibt immer nur ein Serviceexemplar für einen Servicetypen.
|
|
|
|
Darf zugreifen auf:
|
|
* Andere Services
|
|
* Materialien
|
|
* Fachwerte
|
|
|
|
Beispiel: Datenbankservice, Kundenstammservice, ...
|
|
|
|
---
|
|
|
|
# Werkzeug
|
|
|
|
Bieten Möglichkeiten zur Benutzerinteraktion. Sollten möglichst eine klare Aufgabe übernehmen. Häufig werden Werzeuge in eine UI- und Werkzeugklasse aufgeteilt.
|
|
|
|
Darf zugreifen auf:
|
|
|
|
* Andere Werkzeuge
|
|
* Services
|
|
* Materialien
|
|
* Fachwerte
|
|
|
|
---
|
|
|
|
# Aufgabe
|
|
|
|
* Führe einen Confirmation-Dialog ein, der verhindern soll, dass der Benutzer versehentlich den Zähler zurücksetzt. Dafür kann zum Beispiel **Alert** aus JavaFX genutzt werden.
|