php设计模式之策略模式

时间:2021-01-18 22:00:00
//策略模式
//1.去上班选择交通工具
//去上班的接口
interface work{
public function go();
}
//通过坐地铁
class subway implements work{
public function go(){
echo 'subway go work'."<br/>";
}
}
//通过公交
class bus implements work{
public function go(){
echo 'bus go work'."<br/>";
}
}
//通过骑车
class bike implements work{
public function go(){
echo 'bike go work'."<br/>";
}
}
//通过开车
class car implements work{
public function go(){
echo 'car go work'."<br/>";
}
}
//请求的方法
class gowork{
public $way='';
private $item;
public function __construct($way){
$this->way=$way;
//反射类 通过类名称去实例化类
$class=new ReflectionClass($this->way);
$this->item=$class->newInstance();
}
public function go(){
//请求该类下的方法
$this->item->go();
}
}
//这里必须知道有哪几种策略
$re=new gowork("car");
$re->go();