Les VIs malléables s'adaptent aux classes en entrée. Un VI malléable qui appelle une méthode de la classe A accepte les données des classes sans rapport tant que la classe indépendante a une méthode publique qui a les mêmes nom, connecteur et directions des terminaux que la méthode de la classe A. Le VI malléable s'adapte à la classe en entrée en remplaçant l'appel de la méthode de la classe A par un appel de la méthode publique de la classe en entrée, si elle existe.

Les VIs malléables sont plus flexibles que les VIs de dispatch dynamique en ce qui concerne l'adaptation aux classes en entrée. Un VI de dispatch dynamique n'accepte que les données de sa propre classe ou des classes descendantes. Un VI malléable accepte aussi les données des classes sans rapport quand c'est possible.

Cette adaptabilité des VIs malléables définit une interface d'appels de méthode avec le nom de la méthode, le modèle du connecteur et la direction des terminaux. Le VI malléable accepte les données de n'importe quelle classe compatible avec l'interface d'appels de méthode, ce qui vous permet d'utiliser un VI malléable pour réaliser des opérations sur les données de classes sans rapport ou d'implémenter plusieurs interfaces définies par différents VIs malléables sur une classe.

Dans la figure suivante, Read Sensor Data.vim appelle la méthode Filter.vi de Light Sensor.lvclass, qui n'a pas d'ancêtre commun avec Sound Sensor.lvclass. Read Sensor Data.vim s'adapte à Sound Sensor.lvclass, si Sound Sensor.lvclass a une méthode publique ayant le même nom, le même connecteur et les mêmes directions des terminaux que Filter.vi.

Reportez-vous au projet labview\examples\Malleable VIs\Class Adaptation\Malleable VIs - Class Adaptation.lvproj pour voir un exemple d'utilisation de VIs malléables pour définir des interfaces d'appels de méthodes.

Rubriques apparentées

Utilisation d'un VI malléable pour différents types de données

Choix de VIs malléables ou de VIs polymorphes