Hello, George Shepelev! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Wed, 22 Mar 2006 11:29:39
+0300:
DO>>>> Это "по-академически". Состояния действительно на много DO>>>> удобней. GS>>> Флаг - это и есть двоичное состояние ;) DO>> Hо состояние - не есть флаг.
GS> Повторяю, двоичное состояние может храниться в виде флага.
Двоичное - оно и есть флаг.
DO>>>> С той же дверью пример применения флагов крайне неудачный. GS>>> Вполне удачный пример. Скажем, флаги состояния могут GS>>> выставляться в обработчике прерываний, опрашивающем GS>>> состояние
DO>> Причем тут обработчики прерываний?
GS> При том, что сами по себе "академические" флаги или состояния GS> не нужны.
А обработчики-то причем?
GS>>> датчиков, а по их совокупности включаются/выключаются GS>>> лампочки в салоне и звуковая индикация. DO>> Все немного иначе, чем ты себе представляешь...
GS> Интересно, как я могу "не представлять" то, что несколько раз GS> делал? ;)
Как всегда и все, что ты делаешь, понятия не имея как оно собственно должно делаться и делается.
DO>>>> Дверь может быть открыта, закрыта и при этом заперта или не DO>>>> заперта. Открыта и заперта она быть уже не может. GS>>> Лампочки в салоне не горят независимо от того, заперта GS>>> закрытая дверь или нет. DO>> Это у кого как.
GS> У большинства так.
У большинства того, что ты сделал разве что, только это вообще машинами рядли можно назвать. Потому что у всех, что можно, это все уже сделано и сделано несколько иначе.
GS> Опять же, если надо будет сделать "не так", гораздо проще менять в одном месте GS> реакцию на состояния, чем всю структуру состояний системы...
Зачем всю менять? Добавил состояние и правила перехода в него и все. Как раз это и удобнее, чем флаги добавлять и всю логику перетряхивать.
GS>>> и при его переделке крайне неудобно переделывать всю GS>>> остальную логику системы... DO>> И не надо.
GS> Басня Крылова о зелёном винограде. "Вам это не надо, потому GS> что мы так сделали систему, что не можем её изменить".
Изменить удобно, перестраивать ничего не надо. В отличие от ситуцаии с множеством состояний, описываемых набором флагов.
DO>>>> Как хранение состояние конечного автомата - нет. GS>>> Даже когда в системе есть множество конечных автоматов с GS>>> двумя состояниями? Попробуй _обосновать_. DO>> В реальных системах есть множество состояний с числом более DO>> 2х.
GS> Это не отменяет удобства пользования флагами в значительном GS> числе конкретных случаев.
Отменяет. Пользоваться флагами для недвоичных состояний неудобно и потенциально опасно, а двоичные встречаются не так и часто.
dima
formatting link