Schnittstellen mit Prozeduren verwenden
Nach oben zu Schnittstellen verwenden
Schnittstellen ermöglichen das Schreiben generischer Prozeduren zur Verarbeitung von Objekten, die keine Nachkommen derselben Basisklasse sein müssen. Mit den oben verwendeten Schnittstellen IPaint und IRotate können die folgenden Prozeduren geschrieben werden:
procedure PaintObjects(Painters: array of IPaint); var I: Integer; begin for I := Low(Painters) to High(Painters) do Painters[I].Paint; end; procedure RotateObjects(Degrees: Integer; Rotaters: array of IRotate); var I: Integer; begin for I := Low(Rotaters) to High(Rotaters) do Rotaters[I].Rotate(Degrees); end;
RotateObjects setzt nicht voraus, dass Objekte die Informationen für ihre Bildschirmdarstellung besitzen, PaintObjects setzt nicht voraus, dass Objekte die zum Drehen erforderlichen Informationen besitzen. Dadurch können diese generischen Prozeduren wesentlich öfter genutzt werden, als dies der Fall wäre, wenn sie explizit für eine TFigure-Klasse geschrieben würden.