设计模式--策略模式

策略模式(Strategy Pattern):定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,也称为政策模式(Policy)。
策略模式是一种对象行为型模式。

为什么需要策略模式
1.在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。
2.利用面向对象的继承和多态机制,将多个算法解耦。避免类中出现太多的if-else语句

strategy = $strategyReflection->newInstance();

        }catch(ReflectionException $e){
             $this->strategy = ""; 
        }       
    }

    function goToSchool(){
        $this->strategy->wayToSchool();
        // var_dump($this->strategy);
    }
}

//测试
$context = new Context();
$context->getStrategy("BusStrategy");
$context->goToSchool();
 ?>

你可能感兴趣的:(设计模式--策略模式)