Показать сообщение отдельно
Старый 07.12.2012, 09:43   #13  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1789 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Blog bot Посмотреть сообщение
switch(true) невероятно мощная конструкция, которую можно смело считать реализацией "Сопоставления с образцом"(pattern matching) в Х++.
Только нужно понимать, что образцы в этом случае должны быть взаимоисключающими. Т.е. в каждый конкретный момент истинным должно быть только одно условие, иначе логика выполнения может стать отличной от ожидаемой.
Из-за этого добавление нового условия к уже имеющимся может потребовать изменить и все остальные.

Ещё как-то встречал извращенцев умельцев играющих на опускании break в определённых ветках case. Уследить за полётом мысли таких "авторов" бывает очень сложно.

P.S.: Для решения задачи из первого поста подходит паттерн цепочка декораторов
За это сообщение автора поблагодарили: mazzy (2).