2015-05-16 4 views
1

Я понимаю, что объект может иметь только одно конечное состояние за раз. Телефон имеет несколько разных состояний, таких как звон, удержание, разговор и т. Д. У будильника есть такие состояния, как звон, не звонки и т. Д.Конечный автомат (FSM) для абстрактного продукта

Я смотрю на абстрактный класс , такой как Продукт, который может иметь разные статусы, такие как продаваемые/не продаваемые, облагаемые/необлагаемые, материальные/материальные. Когда какой-либо из этих статусов изменяется для продукта , он вызывает некоторые действия в системе.

Должен ли я рассматривать статусы из общего класса быть состояния? Может ли Продукт поддерживать разные состояния и все еще может считаться FSM?

+0

Это слишком широкое. Что вы подразумеваете под «Продуктом»? –

+0

Продукт может быть любым, как продукт, который продается на веб-сайте электронной коммерции (куки, ручка, компьютеры). Таким образом, он очень абстрактный с некоторыми общими состояниями. –

ответ

1

Уверен, что здесь нет единого правильного ответа. Но я бы сказал, это зависит. Если вы хотите рассматривать весь продукт как один FSM, то ваше состояние будет представлять собой сумму всех атрибутов. Такие, как продаваемые, облагаемые налогом, осязаемые, ... В какой-то момент это может быть продаваемым, облагаемым налогом и осязаемым. Если материальное становится неосязаемым, оно тогда будет продаваемым, облагаемым налогом и неосязаемым.

С другой стороны, если вы просматриваете продукт с точки зрения определенной функции, вы можете взять подмножество этих элементов для представления продукта. Таким образом, функция продажи может просто рассматривать продаваемое состояние. Налоговая функция может просто рассматривать налогооблагаемую.

В любом случае, как я уже сказал, я думаю, что это зависит. На вашем примере использования для FSM и на том, что вы хотите выполнить. В конце концов, это просто какая-то терминология, если вам не нужен FSM для чего-то особенного.

Смежные вопросы