php技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > PHP编程 > php技巧 > PHP策略模式

PHP行为设计模式之策略模式

作者:PHP隔壁老王邻居

这篇文章主要介绍了PHP行为设计模式之策略模式,策略模式(Strategy pattern)是行为类模式中的一个类型。行为类模式用来说明一个应用是如何运作的

PHP策略模式(Strategy Pattern)

策略模式是一种行为设计模式,它允许在运行时选择算法行为的方法。该模式定义了一组算法,将每个算法封装到具有共同接口的独立类中,使它们可以相互替换。

适用性

当需要在运行时选择算法实现时,可以使用策略模式。该模式允许选择一个算法,而不是在代码中直接实现算法,从而使代码更加灵活和可维护。

实现步骤

优点

缺点

示例代码

以下是一个简单的PHP策略模式示例,其中有一个上下文类和两个具体策略类:加法和乘法。

<?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

输出:

5

6

到此这篇关于PHP行为设计模式之策略模式的文章就介绍到这了,更多相关PHP策略模式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文