Я хочу иметь 2 статические функции, которые называются turnOn () и turnOff ().
Скажем, objectA вызывает turnOn (), затем objectB вызывает turnOn (). Затем objectA вызывает turnOff (), он не должен выключаться, потому что objectB также включал его.
Также, скажем, objectA вызывает turnOn (), затем objectB вызывает turnOn (). Затем objectB вызывает turnOff (), он не должен выключаться, потому что objectA еще не выключил его.
Наконец, если objectA и objectB включают его, он выключается, когда они оба выключают его.
Я думал о том, чтобы отследить, сколько вызовов TurnOn и TurnOff, и убедиться, что они совпадают, но это не совсем точно, потому что objectA может дважды вызывать turnOff ().
Так, как лучше всего справиться с этим?
Спасибо!