理解PHP中的策略模式
我试图理解PHP中的策略模式。我的示例基于以下教程: 为了理解,我把它删减了一点:理解PHP中的策略模式,php,strategy-pattern,Php,Strategy Pattern,我试图理解PHP中的策略模式。我的示例基于以下教程: 为了理解,我把它删减了一点: interface IStrategy { public function execute(); } class PayCash implements IStrategy { public function execute() { echo "Paying via Cash"; } } class Payment { private $_stra
interface IStrategy
{
public function execute();
}
class PayCash implements IStrategy
{
public function execute()
{
echo "Paying via Cash";
}
}
class Payment
{
private $_strategy; // new PayCash()
public function __construct(IStrategy $strategy)
{
$this->_strategy = $strategy;
}
public function execute()
{
$this->_strategy->execute(); // PayCash->execute();
}
}
//----------------------------------------------
$payment1 = new Payment(new PayCash());
$payment1->execute();
问题:
- (IStrategy做什么?如果没有这个,它也可以工作 公共职能结构(IST战略$strategy)
- 策略模式需要使用接口吗?如果我正确理解了接口,目的是强制类实现一个方法。我也可以在没有接口策略的情况下编写这个,但它会保持策略模式吗
t book没有接口,它将保持模式,但是,您需要了解,接口不仅用于强制方法实现,还用于类型暗示。接口在类内强制其契约,以确保类具有这些方法。您基本上是在问什么是接口…!?谢谢,这意味着(IstStrategy$strategy)是因为类型暗示?换句话说,传递的对象必须来自IstStrategy?这对我来说是有意义的。这意味着您希望对象具有方法
execute
,并在代码中实现此逻辑。