Если у меня есть таблица базы данных, содержащая флаг, который может иметь несколько состояний, я должен сделать этоДолжен ли я использовать методы или константные флаги?
if ($Object->isStateOne()) {
// do something
}
else if ($Object->isStateTwo()) {
// do something else
}
else if ($Object->isStateThree()) {
// do yet something else
}
или это
switch ($Object->getSomeFlag()) {
case ObjectMapper::STATE_ONE:
// do something
break;
case ObjectMapper::STATE_TWO:
// do something else
break;
case ObjectMapper::STATE_THREE:
// do yet something else
break;
}
?
За счет N классов. И сделать намного сложнее переключиться между состояниями. Независимо от того, что делает чувства, зависит от того, что представляют собой государства. – derobert
Я не думаю, что полиморфизм будет работать, так как этот блок if/else/switch должен идти в коде пользовательского интерфейса. То, что происходит для каждого случая, не будет таким же везде, где оно используется. –