Objektorientierte Software-Entwicklung mit Smalltalk
Objektorientierte Software-Entwicklung mit Smalltalk
Objektorientierte Software-Entwicklung mit Smalltalk
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’