策略模式中类的行为和算法可以在运行时更改,是一种行为型模型。
场景:
多种算法相似的行为用策略模式解决if...else过多的情形,
实现方法:
同时继承同一个接口,根据运行的不同场景进行切换不同类处理。
个人理解:
我要用一个交通工具去旅游;
交通工具可以是(自行车,轿车,摩托车)
代码示例:
interface base{
public function driver();
}
class bike extends base{
public function driver(){
echo "bike ";
}
}
class car extends base{
public function driver(){
echo "car ";
}
}
class motor extends base{
public function driver(){
echo "motor ";
}
}
class play{
function __construct(base driver){
driver.driver();
}
}
new play(new bike());
new play(new car());
new play(new motor());
评论已关闭