<?php
/**
*@Description:策略模式
*@Author:luoxiaojin
*@Date:2020-06-2916:57:41
*@LastEditors:luoxiaojin
*@LastEditTime:2020-06-2921:24:18
*@FilePath:design_patternsl7.php
*/
//通用计算机
interfaceComplute{
publicfunctioncalc($op1,$op2);
}
classCompluteAddimplementsComplute{
publicfunctioncalc($op1,$op2){
return$op1+$op2;

策略模式

}
}
classCompluteDivimplementsComplute{
publicfunctioncalc($op1,$op2){
return$op1/$op2;
}
}
classCompluteMultimplementsComplute{
publicfunctioncalc($op1,$op2){
return$op1*$op2;
}
}
classCompluteDropimplementsComplute{
publicfunctioncalc($op1,$op2){
return$op1-$op2;
}
}
//封装一个虚拟计算器,聚合多个真实计算器,和工厂模式的区别是:不触碰产生的对象,而是作为一个部件聚合到虚拟类中
classVComplute{
protected$js=null;
publicfunction__construct($type){
$type=’Complute’.$type;
$this->js=new$type();
}
publicfunctioncalc($op1,$op2){
return$this->js->calc($op1,$op2);
}
}
$vc=newVComplute(‘Mult’);
echo$vc->calc(1,5);

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。