PHP 方式:
// 策略
interface Strategy{
public function doOperation(int $num1,int $num2):int ;
}
// 加法
class OperationAdd implements Strategy{
public function doOperation(int $num1, int $num2): int
{
// TODO: Implement doOperation() method.
return $num1 + $num2;
}
}
// 减法
class OperationSubtract implements Strategy{
public function doOperation(int $num1, int $num2): int
{
// TODO: Implement doOperation() method.
return $num1-$num2;
}
}
// 乘法
class OperationMultiply implements Strategy{
public function doOperation(int $num1, int $num2): int
{
// TODO: Implement doOperation() method.
return $num1 * $num2;
}
}
class Context{
private $_strategy;
public function set_strategy($_strategy)
{
$this->_strategy = $_strategy;
}
public function executeStrategy(int $num1,int $num2){
return $this->_strategy->doOperation($num1,$num2);
}
}
class Demo{
public static function main(){
$context = new Context();
$context->set_strategy(new OperationAdd());
echo "10 + 5 = ".$context->executeStrategy(10,5).PHP_EOL;
$context->set_strategy(new OperationSubtract());
echo "10 - 5 = ".$context->executeStrategy(10,5).PHP_EOL;
$context->set_strategy(new OperationMultiply());
echo "10 * 5 = ".$context->executeStrategy(10,5).PHP_EOL;
}
}
Demo::main();
泡水鱼干
泡水鱼干
626***755@qq.com9个月前 (05-16)