Programmieren
Projekte
KONCAD FT
Fotos zeigen
Lernkasten
online Laden
KONCAD 3D
Tele-Working
Frames
Video Animator & Tricktisch
Adresse ->
Geschützter Bereich


Sie befinden sich hier: Programmierer / Projekte / Frames / 

Objektorientierung

Die Frames habe ich unter LISP implementiert um das Problem zu lösen, das in der Varianten-Fertigung von schrägen und runden Fenstern derart viele Daten entstanden sind, dass sie mit traditionellen Programmiertechniken nicht mehr handhabbar waren.

 

Frames sind das was Heute in C++, C#, Java, ... die Klassen und Objekte sind.

 

Ein Frame ist eine Dateneinheit, die aus einem Namen, Eigenschaften und Methoden besteht.

 

Eine Klasse:

("Blendrahmenprofil"

 

(Eigenschaft   

"Typ"

"Profil")

 

(Eigenschaft

"Breite"

80)

 

(Methode

"PfalzInnen"   

((fr) (- (FrAbf fr "Breite") 30)))

)

Ein Objekt:

("125"

 

(Eigenschaft

"Typ"

"Blendrahmenprofil")

 

(Eigenschaft

"Breite"

85)

 

(Eigenschaft

"Laenge"

1189)

)

 

Methoden: fr ist hier der Parameter der Funktion und die Funktion FrAbf fragt eine Eigenschaft des Frames ab.

In LISP hat jeder Funktionsaufruf die Form ([Name der Funktion] [1. Parameter] [2. Parameter] ...)

 

Ein solcher Frame kann eine Klasse sein, dann ist der Name der Klassenname, die Eigenschaften sind die default-Werte der Eigenschaften und die Methoden sind die Programme, die für diese Klasse geschrieben wurden. Mit der Eigenschaft Typ kann der Frame auf seine Oberklasse (oder Klassen) verweisen.

 

Ein Frame kann aber auch ein Objekt sein, das einen beliebigen eindeutigen Namen trägt und mit der Eigenschaft Typ auf die Klasse (oder Klassen) zeigt, von der es eine Instanz ist.

 

Da der Typ eine einfache Eigenschaft ist, kann sich der Typ während der Laufzeit beliebig ändern. In C++, C#, und Java kann der Typ sich nur zum Obertyp hin ändern. Bei den Frames kann er das beliebig:

 

- Der Typ kann (aufgrund von Benutzereingaben und Ergebnissen von Analysen der Software) sich hin zu einem spezielleren Typ verändern.

Ein Profil kann von der Klasse Profil seinen Typ zum Blendrahmen, BLFinstrall, und BL45634 ändern.

Diese Eigenschaft ist bei der Varianten-Fertigung immens wichtig.

 

- Auch kann sich der Frame von BL45634 in Bl19342 (also einem benachbarten Typ) ändern, um z.B. einen Profilaustausch zu vollziehen.

 

Die Frames arbeiten mit voller Vererbung: Wird in einem Frame eine Eigenschaft oder Methode nicht gefunden, so wird diese im Frame des Typs gesucht und im Typ dieses Frames und so weiter, bis ein Frame keinen Typ mehr hat (Wurzel des Typbaums). Bei Mehrfachvererbung (mehrere Frames in der Typ-Eigenschaft) wird im deep-first-serve-Reihenfolge gesucht.

 

Manche Implementierungen der Frames sehen eine Vorher- und Nachher-Methode vor. Wird im Frame die Methode nicht gefunden aber im Frame darüber (vererbt oder nicht) so wird erst die Vorher-Methode (falls vorhanden) dann die vererbte Methode und dann die Nachher-Methode (falls vorhanden) ausgeführt. Dadurch kann die vererbte Methode geeignet vor- und nachbereitet werden.

 

Ist eine Eigenschaft nicht vorhanden, wird eine Methode mit demselben Name gesucht und dessen Ergebnis als Wert der Eigenschaft zurückgegeben.

 

Das Geheimnisprinzip ist den Frames unbekannt. Alle Eigenschaften der Objekte und Klassen sind beliebig abrufbar und veränderbar. Auch die Methoden sind während der Laufzeit veränderbar. Auch Objekte können Methoden enthalten.

 

Streckenweise ist dies auch ein Vorteil. So können Methoden in einer Datenbank (als Makros) zu den einzelnen Objekten oder Klassen vorgehalten und während der Laufzeit in die Frames geschrieben werden.

 





Nach oben