php-策略模式

     策略模式跟工厂模式有个共同点就是扩展性好,工厂模式就不多说了(参考前面的工厂模式),策略模式主要解决的问题是:有多种策略可以选择,根据不同的情况选择不同的策略,可以随意的增加策略,而不用去修改使用策略的中间模块。比如说,工资计算,由于公司里有各个层次的员工计算工资的公式是不一样的,那么财务部会根据不同的员工来选择不同的计算公式。策略模式就是用来解决这类的问题,下面看看例子:

     <?php
abstract class SalaryAbs
{
 public function calculate(){}
}

class HighSalary extends SalaryAbs
{
 public function calculate()
 {
  echo "HighSalary!<BR>";
 }
}
class LowSalary extends SalaryAbs
{
 public function calculate()
 {
  echo "LowSalary!<BR>";
 }
}

class Accountant
{
 public function cal($salary)
 {
  $salary->calculate();
 }
}

$accountant = new Accountant();

$accountant->cal(new HighSalary());

$accountant->cal(new LowSalary);

?>

这样财务部的同事就可以通过选择不同的员工计算方式来结算员工的工资了。策略模式在很多情况下也会用到,特别是在种类繁多的选择,还要根据不同选择得到不同结果。大概的策略模式就是这样的了。

转载于:https://www.cnblogs.com/jack_zjz/archive/2011/09/30/2196469.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值