다양한 클래스에서 가변 VI 사용하기
- 업데이트 날짜:2025-08-27
- 2분 (읽기 시간)
가변 VI는 입력 클래스에 맞도록 변경됩니다. 클래스 A의 메소드를 호출하는 가변 VI는 클래스 A의 메소드와 동일한 이름, 커넥터 팬 패턴 및 터미널 방향을 가진 퍼블릭 메소드가 클래스에 포함되면 관련 없는 클래스의 데이터를 받아들입니다. 가변 VI는 클래스 A의 메소드에 대한 호출을 입력 클래스의 퍼블릭 메소드에 대한 호출로 대체하여 입력 클래스에 맞게 변경됩니다(그러한 메소드가 존재하는 경우).
다이나믹 디스패치 VI와 비교할 때, 가변 VI는 입력 클래스에 더 유연하게 대응합니다. 다이나믹 디스패치 VI는 VI의 클래스 또는 하위 클래스의 데이터만 받습니다. 가변 VI는 또한 경우에 따라 연관되지 않는 클래스의 데이터도 받을 수 있습니다.
가변 VI의 유연성은 메소드 이름, 커넥터 팬 패턴 및 터미널 방향이 있는 메소드 호출의 인터페이스를 정의합니다. 가변 VI는 메소드 호출의 인터페이스를 충족하는 모든 클래스의 데이터를 받아들입니다. 이로 인해 하나의 가변 VI를 사용하여 관련 없는 클래스의 데이터에 대한 연산을 수행하거나 하나의 클래스에서 다양한 가변 VI로 정의된 여러 인터페이스를 구현할 수 있습니다.
다음 그림에서 Read Sensor Data.vim은 Sound Sensor.lvclass와 공통 상위 데이터를 가지지 않는 Light Sensor.lvclass의 Filter.vi 메소드를 호출합니다. Read Sensor Data.vim은 Sound Sensor.lvclass가 Filter.vi와 같은 이름, 커넥터 팬 패턴 및 터미널 방향이 같은 퍼블릭 메소드를 가지고 있는 경우, Sensor.lvclass에 맞도록 변경합니다.
가변 VI를 사용하여 메소드 호출의 인터페이스를 정의하는 예제는 labview\examples\Malleable VIs\Class Adaptation\Malleable VIs - Class Adaptation.lvproj를 참조하십시오.