设计模式——解释器模式

说明

示例

下面看下解释器模式的代码实现

interface Expression{
public function interpret(Context $context): int;
}

class Plus implements Expression{
public function interpret(Context $context): int{
return $context->getNum1() + $context->getNum2();
}
}

class Minus implements Expression{
public function interpret(Context $context): int{
return $context->getNum1() - $context->getNum2();
}
}

class Context{
private int $num1,$num2;

public function __construct(int $num1,int $num2){
$this->num1 = $num1;
$this->num2 = $num2;
}

public function getNum1(): int{
return $this->num1;
}

public function setNum1(int $num1){
$this->num1 = $num1;
}

public function getNum2(): int{
return $this->num2;
}

public function setNum2(int $num2){
$this->num2 = $num2;
}
}


// 调用
$result = (new Minus())->interpret(new Context((new Plus())->interpret(new Context(9,2)),8));
echo $result;
// output: 3

总结


文章作者: Crazy Boy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Crazy Boy !
赏

留言

想法、疑问或勘误,都可以写在这里。留言会公开显示。

正在准备留言区…