23.09.2013 Aufrufe

Objektorientierte Software-Entwicklung mit Smalltalk

Objektorientierte Software-Entwicklung mit Smalltalk

Objektorientierte Software-Entwicklung mit Smalltalk

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

• Alle Metaklassen sindin eine Vererbungshierarchie eingebunden.<br />

• Die Vererbungshierarchie der Metaklassen ist parallel zu der Hierarchie der „normalen“<br />

Klassen.<br />

(aus Goldberg, Robson 1989)<br />

Michael Prasse 165 Tomcat Computer GmbH<br />

9.4. Typbetrachtung<br />

<strong>Smalltalk</strong> ist nicht statisch typisiert.<br />

Probleme:<br />

• doesNotUnderstand-Fehler<br />

• fehlende Typdokumentation<br />

• semantisch fehlerhafte Objektverknüpfungen<br />

Möglichkeiten:<br />

• dynamische Typabfragen<br />

• Methodenprotokoll<br />

respondsTo:<br />

canUnderstand:<br />

• Klassenzugehörigkeit<br />

isMemberOf:<br />

isKindOf:<br />

• Typinferenz (funktionale Programmierung)<br />

Aber: <strong>Objektorientierte</strong> Typsysteme gängiger Programmiersprachen sindvielfach nicht<br />

ausdrucksmächtig genug.<br />

Michael Prasse 167 Tomcat Computer GmbH<br />

• Klassen undMetaklassen der Number- undder Behavior-Hierachie<br />

(aus Goldberg, Robson 1989)<br />

Michael Prasse 166 Tomcat Computer GmbH<br />

Beispiel Signaturredeklaration<br />

• Die meisten gängigen objektorientierten Programmiersprachen unterstützen keine<br />

Redeklarationen.<br />

• Aus Sicht der Typtheorie sind folgende Redeklarationen in einem Single-Dispatch-<br />

Kalkül möglich:<br />

• Argument: kontravariant<br />

• Resultat: kovariant<br />

• Variable: nonvariant<br />

• Definitionen für Ko-, Kontra- undNonvarianz<br />

• gegeben A’

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!