php之策略模式
2024-09-08 02:42:37
策略模式:封装算法,选择所用具体实现的置业由客户对象承担。
将算法具体类,然后互相替换,不影响客户。
<?php
/**
* 设计模式之策略模式
* User: 小狗蛋儿
* Date: 2017/11/20
* Time: 20:44
*
* 各个算法之间相互替换,不会影响到使用算法的客户
*/ /**
* Class Xianjin
* 现金收费类
*/
abstract class Xianjin{
abstract function Jine($rmb);
} class A extends Xianjin{
public function Jine($rmb)
{
echo "0";
return $rmb;
}
} class B extends Xianjin{
public $zhe="0.8";
public function Jine($rmb)
{
echo "1";
return $rmb*$this->zhe;
}
} class C extends Xianjin{
public $a1=300;
public $a2=60;
public function Jine($rmb)
{
echo "3";
$result=$rmb;
if ($rmb>=$this->a1){
$result=$rmb-floor($rmb/$this->a1)*$this->a2;
}
return $result;
}
} class ContentCax{
public $ceshi;
public function __Construct($types){
switch ($types){
case "0":
$this->ceshi=new A();
break;
case "1":
$this->ceshi=new B();
break;
case "2":
$this->ceshi=new C();
break;
}
} public function GetRestult($rmb){
return $this->ceshi->Jine($rmb);
}
} /***
* 客户类
*/ class ssd{ public function ceshi(){
$a=new ContentCax("2");
$a->GetRestult("100");
}
} $ssd=new ssd();
$ssd->ceshi();
最新文章
- 学生信息管理系统(cocos2d引擎)——数据结构课程设计
- slickedit的alias配置
- libc++abi.dylib: terminate_handler unexpectedly threw an exception错误小结
- memcache 安装教程
- JUC.Condition学习
- CC_CALLBACK之间的区别
- linux网口绑定笔记-bind
- vxWorks下intel82567v3网卡驱动的更新
- centos7新增硬盘
- springboot之scheduled任务调度
- .17-浅析webpack源码之compile流程-入口函数run
- Java基础-Java中的堆内存和离堆内存机制
- ie中input光标问题
- 【CF802C】 Heidi and Library (hard)(费用流)
- yum安装redis phpredis扩展
- 用活firewalld防火墙之service
- PHP支持多线程吗?
- PTA 最大子列和问题(10 分)
- (十一)__LINE__、__FUNCTION__的使用
- tensorflow bilstm官方示例