将if else转换为Pattern


Convert if else to Pattern

我正在使用Laravel来构建一个系统,这个系统非常复杂,它包含了太多。否则,我想更改和清理代码,使其更易于维护。

我有一个类似的东西

if(A)
{
    call_a();
}
else
{
    if(B)
    {
        call_a();
    }
    else
    {
        if()
        {
            call_b();
        }
        else
        {
            if(C)
            {
                call_a();
            }
            else
            {
                call_b();
            }
        }
    }
}

当然它越来越复杂。

有什么帮助吗?THanks

我想我很清楚你在找什么。我真的很喜欢Reddit上的这篇文章:

现在是了解多态性的时候了。

你在帖子中没有具体说明你是否在做面向对象的PHP开发。若你们并没有,那个么你们就陷入了If和案例陈述,但如果你是,那么你很幸运多态性它的发明在一定程度上是为了帮助消除你正在描述条件语句的无限长列表

在你的情况下,基本的想法是,无论你是什么行为试图描述,这取决于某个变量的值,可能更好地封装在类及其子类中。从您的那么,从应用程序的角度来看,该类的每个实例看起来相同,但在内部,每个对象将实现不同的解决方案

以下是PHP中继承的一个快速示例,但取决于在特定情况下,其他多态方法可能会更好。

花点时间读这篇文章是件好事。别想关于代码太多了。多态性存在于所有面向对象中语言,你最好挑战自己去理解概念。就我个人而言,我花了很多时间阅读JavaScript设计模式,因为这是我现在的领域,但是也许其他人可以为PHP推荐一本类似的书。