采用Dice接口的简化示例,该接口将返回1到6之间的随机数和DiceRoller接口,该接口掷骰子特定次数...... DiceRollerInterface如何指定应使用DiceInterface生成劳斯莱斯?或者这不是接口的责任吗?
PHP示例接口:
interface DiceInterface
{
public function roll();
}
interface DiceRollerInterface
{
public function roll($times);
}
PHP示例实现
class DiceRoller implements DiceRollerInterface
{
private $dice;
public function __construct(DiceInterface $dice)
{
$this->dice = $dice;
}
public function roll($times)
{
$rolled = array();
for ($i = 0; $i < $times; $i++) {
$rolled[] = $this->dice->roll();
}
return $rolled;
}
}
答案 0 :(得分:0)
接口是抽象的技术实现,即接口定义行为。实现接口的类提供了(或那些,可以是多个)行为的实际实现。
使用接口的目的是仅公开客户端所需的功能,而不暴露类可能具有的所有内容。接口的关注点不是指定实现细节,例如实现者必须使用的其他依赖项。我们正在使用接口,因为我们不希望与特定实现耦合,我们希望代码使用任何实现。
因此,将接口视为合同(是的......),它指定 并且它并不关心如何。唯一对如何感兴趣的是它的实现者,它可以自由地以任何方式实现它。