欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【php设计模式】策略模式

程序员文章站 2022-07-10 22:38:41
策略模式是针对一组算法,将每一种算法都封装到具有共同接口的独立的类中,从而是它们可以相互替换。策略模式的最大特点是使得算法可以在不影响客户端的情况下发生变化,从而改变不同的功能。 ......

  策略模式是针对一组算法,将每一种算法都封装到具有共同接口的独立的类中,从而是它们可以相互替换。策略模式的最大特点是使得算法可以在不影响客户端的情况下发生变化,从而改变不同的功能。

<?php
interface stratege{
    public function dooperation($int1,$int2);
}

class operationadd implements stratege{
    public function dooperation($int1,$int2){
        return $int1 + $int2;
    }
}

class operationsub implements stratege{
    public function dooperation($int1,$int2){
        return $int1 - $int2;
    }
}

class context{
    public $stratege;
    public function __construct(stratege $stra){
        $this->stratege = $stra;
    }
    public function executestrategy($int1,$int2){
        echo $this->stratege->dooperation($int1,$int2)."\n";
    }
}


$add = new operationadd();
$context_add = new context($add);
$context_add->executestrategy(5,3); //输出8

$sub = new operationsub();
$context_sub = new context($sub);
$context_sub->executestrategy(5,3); //输出2