喜迎
春节

设计模式——策略模式


说明

示例

下面看下策略模式的代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
interface ICalculator{
public function calculate(string $exp);
}

abstract class AbstractCalculator{
public function split(string $exp,string $opt): array{
$arr = explode($opt,$exp);
return [intval($arr[0]),intval($arr[1])];
}
}

class Plus extends AbstractCalculator implements ICalculator{
public function calculate(string $exp){
$arr = $this->split($exp,'+');
return $arr[0] + $arr[1];
}
}

class Minus extends AbstractCalculator implements ICalculator{
public function calculate(string $exp){
$arr = $this->split($exp, '-');
return $arr[0] - $arr[1];
}
}

class Multiply extends AbstractCalculator implements ICalculator{
public function calculate(string $exp){
$arr = $this->split($exp, '*');
return $arr[0] * $arr[1];
}
}


// 调用
$exp = '2+8';
$cal = new Plus();
$result = $cal->calculate($exp);
echo $result;
// output: 10

总结


文章作者: Crazy Boy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Crazy Boy !
评 论
 上一篇
设计模式——状态模式
设计模式——状态模式
说明示例下面看下状态模式的代码实现 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555
2022-05-19
下一篇 
设计模式——简单工厂方法模式
设计模式——简单工厂方法模式
说明凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。首先看下关系图: 示例下面讲解下静态工厂方法模式的代码实现 创建公共接口123interfa
2022-05-19
  目录
hexo