Utilisation d'interfaces avec des procédures
Remonter à Utilisation des interfaces
Les interfaces vous permettent d'écrire des procédures génériques pouvant gérer des objets sans que ces objets dérivent d'une classe de base particulière. En utilisant les interfaces IPaint et IRotate définies précédemment, vous pouvez écrire les procédures suivantes :
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 n'a pas besoin que les objets sachent se dessiner par eux-mêmes et PaintObjects n'exige pas que les objets sachent pivoter. Cela permet aux procédures génériques d'être utilisées plus fréquemment que si elles avaient été écrites uniquement pour la classe TFigure.