Брутально и бессердечно о программировании и проектировании
ГлавнаяФорумАртПаттерныТест-драйвЗаметкиВопрос-ответКнигорецензииСправочная

Magic strings

Этот антипаттерн, как можно догадаться из названия, похож на «Magic numbers». «Magic strings» — это прописывание в коде строковых значений для сравнения с какими-либо параметрами. Например, для сравнения со значением названия события, как в следующем примере:
0
1
2
3
4
5
6
7
8
9
10
11
if(event.type() == "begin")
{
    // Какой-то код
}
else if(event.type() == "process")
{
    // Какой-то код
}
else if(event.type() == "commit")
{
    // Какой-то код
}
 
Во-первых, не всегда понятно, что именно за событие кроется за его строковым именем. Во-вторых, как вы понимаете, компилятору совершенно все равно, какие строки сравнивать. Если вдруг написание имени события поменялось, или же просто была допущена орфографическая ошибка, то вы об этом во время компиляции ничего не узнаете.

Оглавление
Статистика
© 2007—2009 Inside C++ Коммерческие услугиКонтактная информация

Bazar-Auto.ru - BMW - срочный выкуп!. плакаты, печать плакатов