Home  >  Article  >  Backend Development  >  Code sharing of PHP strategy mode

Code sharing of PHP strategy mode

黄舟
黄舟Original
2017-03-16 09:25:481273browse

PHPStrategy Mode code sharing

<?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 &#39;<br>&#39;;  
$strategy->setCalculator(new MultiplyCalculator());  
echo $strategy->doCalc(2, 3);

The above is the detailed content of Code sharing of PHP strategy mode. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn