防止很多其他的模式

时间:2017-05-03 13:53:29

标签: php design-patterns

请提供一些示例或模式名称,以避免大量if else构造。也许存在一些设计模式以获得更干净和可读的代码?

public function process(CreditNotificationInterface $obj)
{
    $this->creditNotification = $obj;
    if ($obj->isAccepted()) {
        return $this->accept();
    } else {
        if ($obj->isDeclined()) {
            return $this->decline();
        } else {
            if ($obj->isError()) {
                return $this->error();
            } else {
                if ($obj->isAbandoned()) {
                    return $this->abandoned();
                }
            }
        }
    }
    return false;
}

2 个答案:

答案 0 :(得分:0)

如果你真的想要使用设计模式策略模式,那么对我来说就像许多if / else' s。 http://www.phptherightway.com/pages/Design-Patterns.html

答案 1 :(得分:0)

构思switch语句是为了解决这个问题。它允许您连续检查值以尝试减少嵌套ifs并压缩串行if-elses。看一下如何在PHP中应用switch语句的示例。然后将其应用于您的问题。

https://www.w3schools.com/php/php_switch.asp