2016-07-03 2 views
1

У меня есть диаграмма состояний поведения проигрывателя DVD, которая состоит из ящика для хранения DVD. На диаграмме закрытое состояние и открытое состояние представляют состояния, когда ящик закрыт, и ящик открыт соответственно. Предположим, что плеер выключен, когда он находится в открытом состоянии, при этом нет компакт-диска в выдвижном ящике и выдвижного ящика, а затем снова включается. Логически, ящик находится в закрытом состоянии, но физически ящик находится в открытом состоянии. Затем, если пользователь нажимает кнопку загрузки, система открывает выдвижной ящик, который уже был в открытом состоянии, поэтому он не влияет. Но пользователь нажимает кнопку загрузки, потому что он видит, что ящик открыт, и надеется, что ящик будет близок, если он нажмет кнопку загрузки. Но он снова должен нажать кнопку загрузки, если он хочет закрыть ящик. Как я могу решить эту проблему? enter image description hereКак обрабатывать разницу между физическим состоянием и логическим состоянием?

ответ

2

Как я могу решить эту проблему?

На практике вы бы рассчитывать на какой-то уведомление о том, что устройство DVD-плеер был циклическом мощность:

  • Если игрок автоматически ставит себя в четко определенном состоянии, когда его сила циклическое , вы можете синхронизировать логическое состояние с физическим состоянием (вывод).

  • Если у игрока есть датчики для обнаружения физического состояния, вы можете их исследовать, а затем синхронизировать с ним логическое состояние.

  • Вы можете ввести команду «открыть» или «закрыть», проверить, что команда выполнена успешно, и синхронизировать с физическим состоянием, которое вы вывели из этого.

+0

Должен ли я также добавить эту информацию на диаграмме? –

+0

Должны ли вы? Если вы планируете эту диаграмму, тогда да. Но если вы моделируете идеализированный DVD-плеер ... или практичный игрок, который не справляется со случайным силовым циклом ... тогда оставьте это. –