1. 程式人生 > >[design pattern] 策略模式

[design pattern] 策略模式

策略模式

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();