Comprendre la hiérarchie des objets FlexPro

23.08.2021

Contrairement à la plupart des modèles d'objets d'automatisation tels que celui de Microsoft Office, les objets FlexPro sont structurés de manière hiérarchique. Cela signifie que les propriétés et les méthodes qui s'appliquent à plusieurs objets sont combinées pour former un objet de base. La structuration est à plusieurs niveaux, allant du général au spécifique. La hiérarchie des objets de FlexPro applique un principe puissant de la programmation orientée objet, appelé héritage. L'illustration suivante montre la hiérarchie des objets du graphique FlexPro 2D.

L'héritage offre un certain nombre d'avantages tant au niveau de la mise en œuvre de FlexPro que de l'utilisation du modèle d'objet FlexPro. Pour l'implémentation de FlexPro, l'héritage signifie que l'implémentation d'un objet de base peut être réutilisée dans tous les objets qui sont basés sur cet objet de base. Le logiciel est donc plus compact et plus facile à entretenir. Dans l'exemple ci-dessus, le CursorObject est l'objet de base pour le graphique 2D(Diagram2D), le graphique 3D(Diagram3D), la feuille de travail(Worksheet) et le document(Document). Une seule mise en œuvre est utilisée pour quatre objets différents. Plus on monte dans la hiérarchie des objets, plus cette "réutilisation du code" est importante. Par exemple, tous les objets qui peuvent être stockés dans la base de données FlexPro sont dérivés de FpObject.

En outre, lors du développement d'applications d'automatisation qui accèdent au modèle d'objet FlexPro, la hiérarchie d'objets FlexPro représente un avantage majeur. Par exemple, un programme qui utilise uniquement les propriétés et les méthodes de l'interface CursorObject fonctionnera avec tous les CursorObjects FlexPro (graphique 2D, graphique 3D, etc.) sans nécessiter de modifications, même si des versions ultérieures de FlexPro contiennent des objets supplémentaires dérivés de CursorObject. Le compilateur (Basic, C++, Java ...) utilisé pour la mise en œuvre de l'application peut générer un code très rapide car toutes les méthodes et propriétés de CursorObject sont connues au moment de la compilation. Ainsi, les appels peuvent être directement convertis en adresses, ce qui accélère considérablement le traitement ultérieur du programme. En Basic, vous pouvez en profiter en choisissant le type CursorObject pour la variable objet. Vous indiquez donc au compilateur quel ensemble de propriétés et de méthodes sera disponible au moment de la compilation du programme.

Si FlexPro ne disposait pas d'une hiérarchie d'objets, une variable objet devant contenir un objet quelconque prenant en charge les curseurs devrait être déclarée comme un type d'objet non spécifié. Un tel programme pourrait également fonctionner avec de nouveaux objets supportant les curseurs sans nécessiter de modifications. La vitesse de traitement, cependant, serait beaucoup plus faible. Comme le compilateur ne connaît pas les propriétés et les méthodes de l'objet réel détenu par la variable objet lors de la compilation du programme, l'adresse, comme celle d'une méthode, ne peut être établie avant l'exécution du programme. En utilisant le nom de la méthode, son index dans l'interface est identifié. La méthode est ensuite appelée à l'aide de la fonction générique Invoke. Tous les arguments doivent être emballés dans ce qu'on appelle des variantes, puisque leurs types de données ne sont pas connus au moment de la compilation. Un autre inconvénient sérieux de cette procédure est que de nombreuses erreurs, telles que "mauvais nom de méthode", "mauvais nombre d'arguments" ou "mauvais type de données d'argument", ne seront pas identifiées avant l'exécution du programme.

Partager l’article ou envoyer par mail :

Vous serez probablement intéressé par les articles suivants :