PHP ストラテジーモードのコード共有

黄舟
リリース: 2023-03-06 17:02:01
オリジナル
1277 人が閲覧しました

PHP戦略モードコード共有

<?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);
ログイン後にコピー

以上がPHP ストラテジーモードのコード共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート