Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2006  »  09  »  Ingenieurskunst  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

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«.

Listing 2: Hello World,
»ROOT_CLASS«

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.

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Verwandlungskünstler C- und C++-Entwicklung mit Eclipse
Here comes the sun Suns Java-Entwicklungsumgebung Netbeans
Junge Pinguinbande Linux Tools für Eclipse
Babylon zu fünft Populäre Programmiersprachen treten gegeneinander an
Babylon zu fünft Populäre Programmiersprachen treten gegeneinander an
Tooltime Die besten zehn Eclipse-Plugins
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)
Kommentare (0)