順応性VIを異なるクラスに使用する
- 更新日2025-08-27
- 3分で読める
順応性VIは、入力クラスに適応します。クラスAのメソッドを呼び出す順応性VIは、そのクラスAのメソッドと名前、コネクタペーンパターン、および終端方向が同じパブリックメソッドを持つ限り、関連しないクラスのデータを受け入れます。順応性VIは、クラスAのメソッドの呼び出しを、入力クラスのパブリックメソッドの呼び出し (存在する場合) で置き換えることにより入力クラスに適応します。
順応性VIは、ダイナミックディスパッチVIよりも柔軟に入力クラスに適応できます。ダイナミックディスパッチVIは、自身のクラスのデータまたは子孫クラスのデータのみを受け入れます。順応性VIは、可能であれば無関係のデータも受け付けます。
順応性VIの適応性により、メソッド呼び出しのインタフェースは、メソッド名、コネクタペーンパターン、および端子方向により定義されます。順応性VIはメソッド呼び出しのインタフェースを満たすすべてのクラスのデータを受け入れるため、1つの順応性VIを使用して関連しないクラスのデータを操作したり、異なる順応性VIにより定義された複数のインタフェースを1つのクラスに実装したりすることができます。
以下の図では、Read Sensor Data.vimは、Sound Sensor.lvclassと祖先を共有していないLight Sensor.lvclassのFilter.viメソッドを呼び出しています。Read Sensor Data.vimは、Sound Sensor.lvclassがFilter.viと名前、コネクタペーンパターン、および端子方向が同じであるパブリックメソッドを持つ場合、Sound Sensor.lvclassに適応します。
順応性VIを使用してメソッド呼び出しのインタフェースを定義するサンプルについては、labview\examples\Malleable VIs\Class Adaptation\Malleable VIs - Class Adaptation.lvprojを参照してください。