策略模式
来源:互联网 发布:淘宝儿童化妆品 编辑:程序博客网 时间:2024/06/08 18:03
<?php// 策略模式interface Calculator{public function calc($a, $b);}/** * add strategy */class AddCalculator implements Calculator{public function calc($a, $b){return intval($a) + intval($b);}}/** * multiply stategy */class MultiplyCalculator implements Calculator{public function calc($a, $b){return intval($a) * intval($b);}}// -------------------------------------------------------/** * sample code */class StrategySample{private $calc;public function __construct(Calculator $c = NULL){if(!is_null($c))$this->calc = $c;}/** * set calculator */public function setCalculator(Calculator $c){$this->calc = $c;}/** * get calculator */public function getCalculator(){return $this->calc;}public function doCalc($a, $b){return $this->calc->calc($a, $b);}}// test code$add = new AddCalculator();$strategy = new StrategySample($add);echo $strategy->doCalc(2, 3);echo '<br>';$strategy->setCalculator(new MultiplyCalculator());echo $strategy->doCalc(2, 3);
0 0
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- JAVA从入门到精通(2)
- 视频编码格式全面解析
- mvn出现GC overhead limit exceeded
- Android架构设计模式总结(MVX)
- logstash elasticsearch kibana搭建日志平台
- 策略模式
- 【Unity&人物属性】人物属性大量设置用set,get方法还是public成员
- java synchronized详解
- ES6学习笔记之《let 和 const》
- 基于改进的RPCA人脸识别算法
- 贪婪与懒惰--正则表达式
- STM32 RTC
- String StringBuffer StringBuilder
- 【Oracle】RAC11gR2 Grid启动顺序及启动故障诊断思路