State Machine vs Switch Case

Я использую Rational Rhapsody для разработки проектов. Я использую конечный автомат для переходов между состояниями (экранами), что также можно сделать с помощью switch. Я хочу знать, каковы преимущества конечного автомата в Rational Rhapsody по сравнению с операторами switch.


person arayan    schedule 04.04.2018    source источник
comment
В прошлый раз, когда я использовал конечный автомат, это было сделано с конструкцией switch case. Ваши теги противоречат друг другу. Вы можете использовать либо C, либо C++, но не оба одновременно.   -  person Gerhardh    schedule 04.04.2018
comment
Да, это либо С, либо С++, я использую С++   -  person arayan    schedule 04.04.2018
comment
Тогда, пожалуйста, не добавляйте несвязанные языковые теги.   -  person Gerhardh    schedule 04.04.2018
comment
@Gerhardh, в чем проблема с одновременным использованием C и C++? Они идеально совместимы.   -  person Anton Malyshev    schedule 04.04.2018
comment
Это разные языки с разными правилами. Тот факт, что некоторые части синтаксиса и семантики схожи, не делает их одним языком. Многие из них очень не-совместимы.   -  person Gerhardh    schedule 04.04.2018
comment
@AntonMalyshev совсем нет. Вы можете создать полезное подмножество обоих языков для создания полиглотов, но это подмножество будет одновременно хромым C и ужасным C++.   -  person Quentin    schedule 04.04.2018
comment
лол, ребята, вы такие религиозные, что совместимость заставляет вашу ОС работать например   -  person Anton Malyshev    schedule 04.04.2018
comment
@AntonMalyshev, вы можете взаимодействовать с двоичными файлами C и C++ через extern "C". То есть не использовать оба одновременно. В любом случае расплывчатый вопрос, даже не касающийся языка, не может дать хорошего результата.   -  person Quentin    schedule 04.04.2018
comment
Конечный автомат также может быть реализован с помощью переключателя. Так что вопрос совсем не по теме. Один из них — вопрос дизайна, а другой — детали реализации. Так как же можно сравнивать аргументированы?   -  person Klaus    schedule 04.04.2018


Ответы (1)


Ваш вопрос немного не в тему:

Конечный автомат — это «концепция», тогда как switch-case — это возможная реализация конечного автомата.

Это все равно, что сказать: «Можем ли мы сделать императивное программирование на C++?». Императивное программирование - это концепция (здесь парадигма), и это можно сделать на C++.

Вы можете реализовать конечный автомат с помощью переключателя, массива, связанного списка .... Вам решать, действительно ли вам нужен конечный автомат и как его реализовать.

person Tom's    schedule 04.04.2018