Verpflichtung für den Client
Zeile 31 definiert die Routine »set_name«, die ein Argument vom Typ »STRING« besitzt. Die Anweisung »require« (Zeile 33) beginnt einen Block mit Vorbedingungen; das sind Bedingungen, unter denen eine Routine wie geplant ablaufen kann. Der Client muss sie erfüllen, bevor er die Routine aufruft. Vorbedingungen sind Verpflichtungen für den Klienten und ein Nutzen für den Anbieter, der sich auf sie verlassen kann. Die Verletzung einer Vorbedingung gilt als Fehler des Klienten. Die Prozedur »set_name« darf keine Referenz auf »Void« als Argument übergeben bekommen (Listing 1, Zeile 34). Zudem darf die als Argument übergebene Zeichenkette nicht leer sein (Zeile 35). Zeile 37 weist dem Attribut »name« den Argumentwert »a_name« zu.
»ensure« (Zeile 38) leitet einen Block mit Nachbedingungen ein. Das sind Eigenschaften, die nach der Ausführung der Routine erfüllt sein müssen. Nachbedingungen unterstützen den Client und nehmen den Anbieter in die Pflicht.
Die Verletzung der Nachbedingung ist also ein Fehler des Anbieters, der nicht einhält, was er dem Klienten zugesichert hat. Die hier verwendete Bedingung soll sicherstellen, dass »name« wirklich denselben Wert wie »a_name« hat (Zeile 39), das heißt, dass beide dasselbe Objekt referenzieren.
Attribute
Zeile 20 in Listing 1 definiert das Attribut »name« vom Typ »STRING«. Der Typ eines Attributs steht durch einen Doppelpunkt getrennt hinter dem Namen. Das Schlüsselwort »is« definiert konstante Attribute:
The_answer: INTEGER is 42
-- The Answer to the Ultimate Question
Mögliche Typen sind: »INTEGER«, »REAL« (auch »DOUBLE«), »BOOLEAN« (mit den Werten »True« und »False«), »CHARACTER« (die Zeichen in einfachen Anführungszeichen: »\'X\'«) und »STRING« (Zeichenketten in Anführungszeichen: »"The Answer is 42"«).
Um die eben erstellte Klasse »HELLO« zu benutzen, modifizieren Sie die Root-Creation-Prozedur der Root-Klasse »ROOT_CLASS« entsprechend Listing 2. Das Schlüsselwort »local« beginnt einen Abschnitt, der lokale Variablen für die Routine definiert. Dabei steht der Typ der Variablen wie bei den Attributen durch einen Doppelpunkt getrennt hinter dem Namen. Zeile 15 definiert eine lokale Variable vom Typ »HELLO«.
01 indexing
02 description: "System's root class"
03
04 class
05 ROOT_CLASS
06
07 create
08 make
09
10 feature -- Initialization
11
12 make is
13 -- Creation procedure.
14 local
15 hello: HELLO
16 do
17 create hello.make
18 io.put_string ("Please enter your name: ")
19 io.read_line
20 hello.set_name (io.last_string)
21 io.put_string (hello.greeting + "%N")
22 end
23
24 end -- class ROOT_CLASS
|
In den Zeilen 17 bis 21 folgt eine Sequenz von Instruktionen, die üblicherweise durch einen Zeilenumbruch voneinander getrennt sind. Sie können aber auch Semikolons verwenden, womit der Zeilenumbruch optional wird. Um auf die Features der Klasse »HELLO« von »ROOT_CLASS« aus zuzugreifen, erzeugen Sie eine Instanz der Klasse »HELLO« (Zeile 17). Die lokale Variable »hello« ist zunächst an kein Objekt gebunden. Ihr Wert ist eine Referenz auf »Void«. Mit »create hello.make« erzeugen Sie ein »HELLO«-Objekt im Speicher, verbinden die Entität »hello« mit der Adresse des Objekts und rufen dann dessen Creation-Prozedur auf.
| Whitepaper |
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele
Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
|
The Role of Open Source in Data Integration
Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|