PHP行为设计模式之策略模式(php策略模式和工厂模式的区别和联系)一篇读懂

随心笔谈2年前发布 编辑
159 0
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

<?php
interface MathStrategy
{
public function calculate(int $a, int $b): int;
}
class Addition implements MathStrategy
{
public function calculate(int $a, int $b): int
{
return $a + $b;
}
}
class Multiplication implements MathStrategy
{
public function calculate(int $a, int $b): int
{
return $a * $b;
}
}
class MathContext
{
private $strategy;
public function __construct(MathStrategy $strategy)
{
$this->strategy=$strategy;
}
public function setStrategy(MathStrategy $strategy): void
{
$this->strategy=$strategy;
}
public function calculate(int $a, int $b): int
{
return $this->strategy->calculate($a, $b);
}
}
$context=new MathContext(new Addition());
echo $context->calculate(2, 3) . “\n”; // output: 5
$context->setStrategy(new Multiplication());
echo $context->calculate(2, 3) . “\n”; // output: 6

© 版权声明

相关文章