나는 물리적 장치의 각 기능을 모델링하는 추상 클래스 Capability
을 가지고있다. 그런 다음 각각 다른 이벤트를 발생시킬 수있는 InputSwitch
및 TemperatureSensor
과 같은 하위 클래스가 있습니다.런타임에 클래스의 이벤트 열거
InputSwitch
은 매우 간단합니다. 물리적 스위치를 누르면 객체를 나타내는 객체가 Triggered
으로 표시됩니다.
TemperatureSensor
은 두 가지 이벤트 - TemperatureOK
및 TemperatureAlarm
이 있다는 점에서 약간 더 복잡합니다.
각각 두 가지 하위 클래스가 있으며, 각각 다른 이벤트를 발생시킬 수 있습니다. 런타임 중에 추가 된 서브 클래스의 인스턴스가 더있을 수도 있습니다.
최종 사용자는 이러한 이벤트가 트리거 될 때 어떤 이벤트가 발생 하는지를 지정할 수 있어야하므로 본질적으로 사용자가 모든 Capability
인스턴스에서 가능한 이벤트를 찾아 볼 수 있도록합니다. 각 기능은 현재 List<Capability>
에 저장되어 있습니다.
사용 가능한 이벤트를 열거 할 수있는 방법이 있습니까?
예 :
리플렉션을 사용하여 모든 이벤트의 목록을 얻는 것이 가능한 방법이라고 생각하지 않습니다. 선택해서는 안되는 이벤트를 추가하면 어떨까요? 수동으로 정의한 이벤트 목록을 사용하십시오. –
나는 당신이 정확히 원하는 것을 이해하지 못했다. 당신이 수업의 사건을 열거하고 싶습니까? 또는 클래스 인스턴스의 이벤트를 발생 시켰습니까? –
@TimSchmelter - 당신이 무슨 뜻인지 알겠지만,이 클래스들은 모든 이벤트가 최종 사용자가 액션을 할당 할 수 있도록 특별히 고안되었습니다. 필자는 수동으로 정의 된 목록에 복제 할 필요가 없었습니다. @DotNeter - 클래스의 각 인스턴스에 사용할 수있는 이벤트 - 따라서 'TemperatureSensor'의 각 인스턴스에는 'TemperatureOK' 및'TemperatureAlarm '두 이벤트가 나열됩니다. –