Skip to content

Commit 52f9142

Browse files
committed
format source blocks
1 parent 17739a1 commit 52f9142

9 files changed

Lines changed: 1964 additions & 1575 deletions

File tree

de/05.adoc

Lines changed: 50 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,20 @@ image::img/image25.png[width=458,height=207]
3535
3636
Einen Hinweis darauf, ob sich das Unterteilen in spezielle Klassen lohnt, geben die jeweili­gen Eigenschaften. So hat jede Bahn einen Namen, aber nur Bergbahnen besitzen eine Tal- und eine Bergstation.
3737
38-
CLASS Bahn = +
39-
Name: TEXT++*++100; +
40-
END Bahn; +
41-
+
42-
CLASS Bergbahn EXTENDS Bahn = +
43-
LageTalstation: LandesKoord; +
44-
LageBergstation: LandesKoord; +
45-
END Bergbahn; +
46-
+
47-
CLASS Tramlinie EXTENDS Bahn = +
38+
[source]
39+
----
40+
CLASS Bahn =
41+
Name: TEXT*100;
42+
END Bahn;
43+
44+
CLASS Bergbahn EXTENDS Bahn =
45+
LageTalstation: LandesKoord;
46+
LageBergstation: LandesKoord;
47+
END Bergbahn;
48+
49+
CLASS Tramlinie EXTENDS Bahn =
4850
END Tramlinie;
51+
----
4952
5053
.Bergbahn und Tramlinie übernehmen («erben») die Eigenschaft Name von ihrer Oberklasse Bahn, ohne dass dies nochmals geschrieben werden müsste. Eine Bergbahn besitzt zusätzlich zu den ererbten noch weitere Eigenschaften, nämlich die Lage von Tal- und Bergstation (in Landeskoordinaten). Rechts dasselbe in der Schreibweise von INTERLIS.
5154
image::img/image26.png[width=230,height=90]
@@ -61,18 +64,21 @@ Hundert Zeichen für den Namen einer Bahn mag im allgemeinen Fall ja angemessen
6164
6265
Aber eine Tramlinie mit hundert Buchstaben? Hier reichen fünf Zeichen definitiv aus.
6366
64-
CLASS Bahn = +
65-
Name: TEXT++*++100; +
66-
END Bahn; +
67-
+
68-
CLASS Bergbahn EXTENDS Bahn = +
69-
LageTalstation: LandesKoord; +
70-
LageBergstation: LandesKoord; +
71-
END Bergbahn; +
72-
+
73-
CLASS Tramlinie EXTENDS Bahn = +
74-
**Name (EXTENDED): TEXT++*++5; +
75-
**END Tramlinie;
67+
[source]
68+
----
69+
CLASS Bahn =
70+
Name: TEXT*100;
71+
END Bahn;
72+
73+
CLASS Bergbahn EXTENDS Bahn =
74+
LageTalstation: LandesKoord;
75+
LageBergstation: LandesKoord;
76+
END Bergbahn;
77+
78+
CLASS Tramlinie EXTENDS Bahn =
79+
Name (EXTENDED): TEXT*5;
80+
END Tramlinie;
81+
----
7682
7783
Abbildung 27: Für den Namen einer Tramlinie reichen fünf Zeichen aus: Der Typ der Eigenschaft «Name» wird von der Unterklasse verfeinert (präzisiert). Rechts wiederum dasselbe in der Schreibweise von INTERLIS.
7884
@@ -95,17 +101,20 @@ Soll es von einer Klasse keine konkreten Objekte geben können, wird sie als *ab
95101
96102
Häufig sind in einem Datenmodell sogar alle Oberklassen abstrakt und nur die untersten, speziellsten Klassen konkret.
97103
98-
CLASS Bahn *(ABSTRACT)* = +
99-
Name: TEXT++*++100; +
100-
END Bahn; +
101-
+
102-
CLASS Bergbahn EXTENDS Bahn = +
103-
LageTalstation: LandesKoord; +
104-
LageBergstation: LandesKoord; +
105-
END Bergbahn; +
106-
+
107-
CLASS Tramlinie EXTENDS Bahn = +
104+
[source]
105+
----
106+
CLASS Bahn (ABSTRACT) =
107+
Name: TEXT*100;
108+
END Bahn;
109+
110+
CLASS Bergbahn EXTENDS Bahn =
111+
LageTalstation: LandesKoord;
112+
LageBergstation: LandesKoord;
113+
END Bergbahn;
114+
115+
CLASS Tramlinie EXTENDS Bahn =
108116
END Tramlinie;
117+
----
109118
110119
Abbildung 28: Bahn als abstrakte Klasse: Soll es keine Objekte geben können, die nur Bahn sind, ohne auch Bergbahn oder Tramlinie zu sein, wird dies im Diagramm mittels Schrägschrift bezeichnet. Rechts dasselbe Modell in der Schreibweise von INTERLIS.
111120
@@ -114,15 +123,16 @@ Abbildung 28: Bahn als abstrakte Klasse: Soll es keine Objekte geben können, di
114123
115124
Angenommen, ein internationaler Verband möchte sicherstellen, dass Billette mit ihren Preisen erfasst werden. Er will aber keine bestimmte Währung für die Preisangabe vor­schreiben, und entsprechend ist auch nicht klar, was eine sinnvolle Obergrenze für den Preis wäre. Fest steht andererseits, dass «Preis» eine Zahl sein soll, und dass es sich um Geld handelt. Schliesslich werden Preise nicht in Kilometern pro Stunde gemessen!
116125
117-
____
118-
CLASS BillettartWeltweit (ABSTRACT) = +
119-
Preis (ABSTRACT): NUMERIC ++[++MONEY++]++; +
120-
END BillettartWeltweit; +
121-
+
122-
CLASS BillettartAhland EXTENDS BillettartWeltweit = +
123-
Preis (EXTENDED): 0.00 .. 9999.99 ++[++Ahland.Taler++]++; +
126+
[source]
127+
----
128+
CLASS BillettartWeltweit (ABSTRACT) =
129+
Preis (ABSTRACT): NUMERIC [MONEY];
130+
END BillettartWeltweit;
131+
132+
CLASS BillettartAhland EXTENDS BillettartWeltweit =
133+
Preis (EXTENDED): 0.00 .. 9999.99 [Ahland.Taler];
124134
END BillettartAhland;
125-
____
135+
----
126136
127137
[NOTE]
128138
Nicht alle Eigenschaften müssen bis ins Detail festgelegt werden: Bei abstrakten Klassen sind *abstrakte Eigenschaften* zulässig. Es liegt dann an den konkreten Unterklassen, diese Eigenschaften zu präzisieren. Dies ist zum Beispiel dann nützlich, wenn etwas auf internationaler oder nationaler Stufe allgemein geregelt werden soll, ohne gleich jedes Detail vorzuschreiben.

0 commit comments

Comments
 (0)