首页 > 学院 > 开发设计 > 正文

策略模式

2019-11-08 02:01:58
字体:
来源:转载
供稿:网友
<?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);
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表