/**
* 定义支持算法的接口
* 策略模式
*/
abstract class Strategy
{
abstract public function AlgorithmInterface();
}
class ConcreateStratA extends Strategy
{
public function AlgorithmInterface()
{
echo "算法A";
}
}
class ConcreateStratB extends Strategy
{
public function AlgorithmInterface()
{
echo "算法B";
}
}
class ConcreateStratC extends Strategy
{
public function AlgorithmInterface()
{
echo "算法C";
}
}
class Context
{
private $_StrObj;
public function __construct($strobj)
{
$this->_StrObj = $strobj;
}
public function ContextInterface()
{
$this->_StrObj->AlgorithmInterface();
}
}
$context = new Context(new ConcreateStratA);
$context->ContextInterface();
$context = new Context(new ConcreateStratC);
$context->ContextInterface();
$context = new Context(new ConcreateStratB);
$context->ContextInterface();
* 定义支持算法的接口
* 策略模式
*/
abstract class Strategy
{
abstract public function AlgorithmInterface();
}
class ConcreateStratA extends Strategy
{
public function AlgorithmInterface()
{
echo "算法A";
}
}
class ConcreateStratB extends Strategy
{
public function AlgorithmInterface()
{
echo "算法B";
}
}
class ConcreateStratC extends Strategy
{
public function AlgorithmInterface()
{
echo "算法C";
}
}
class Context
{
private $_StrObj;
public function __construct($strobj)
{
$this->_StrObj = $strobj;
}
public function ContextInterface()
{
$this->_StrObj->AlgorithmInterface();
}
}
$context = new Context(new ConcreateStratA);
$context->ContextInterface();
$context = new Context(new ConcreateStratC);
$context->ContextInterface();
$context = new Context(new ConcreateStratB);
$context->ContextInterface();