策略模式
1.是什么
是对具体算法的封装,算法实现了同一个目的。
2.实现方法
比如计算各地的薪资状况
PHP 代码:
interface ISalary{
public function computer();
}
class Context {
/* 引用的薪资*/
private $_salary;
public function __construct( ISalary $salary) {
$this->_salary = $salary;
}
public function computer() {
$this->_salary->computer();
}
}
class HebeiSalary implements ISalary{
public function computer(){
echo '计算 河北 Salary;<br>';
}
}
class TianjinSalary implements ISalary{
public function computer(){
echo '计算 天津 salary;<br>';
}
}
class Client{
public static function calc(){
$obj = new Context(new HebeiSalary());
$obj->computer();
$obj2 = new Context(new TianjinSalary());
$obj2 -> computer();
}
}
Client::calc();