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();
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/6426.html