策略模式

来源:互联网 发布:淘宝儿童化妆品 编辑:程序博客网 时间:2024/06/08 18:03
<?php// 策略模式interface Calculator{public function calc($a, $b);}/** * add strategy */class AddCalculator implements Calculator{public function calc($a, $b){return intval($a) + intval($b);}}/** * multiply stategy */class MultiplyCalculator implements Calculator{public function calc($a, $b){return intval($a) * intval($b);}}// -------------------------------------------------------/** * sample code */class StrategySample{private $calc;public function __construct(Calculator $c = NULL){if(!is_null($c))$this->calc = $c;}/** * set calculator */public function setCalculator(Calculator $c){$this->calc = $c;}/** * get calculator */public function getCalculator(){return $this->calc;}public function doCalc($a, $b){return $this->calc->calc($a, $b);}}// test code$add = new AddCalculator();$strategy = new StrategySample($add);echo $strategy->doCalc(2, 3);echo '<br>';$strategy->setCalculator(new MultiplyCalculator());echo $strategy->doCalc(2, 3);

0 0
原创粉丝点击