PHP重构之函数上移

参考《重构》

<?php
abstract class Customer
{
    public function addBill($date, $amount)
    {
        echo "addBill()".'<br>';
    } 
    public function CreateBill($date)
    {
        echo "CreateBill()".'<br>';
        $this->chargeFor();
    }
    abstract protected function chargeFor();  // 将子类不同的函数部分抽象为抽象方法,让子类去实现
}

class RegularCustomer extends Customer
{
    protected function chargeFor()
    {
        echo "go to north area, buy some food!".'<br>';
        echo "find a small shop eat noondles!".'<br>';
    }
}

class PreferredCustomer extends Customer
{
    protected function chargeFor()
    {
        echo "buy drinks!!!".'<br>';
        echo "go to bank!!!".'<br>';
    }
}

$jack = new RegularCustomer();
$mike = new PreferredCustomer();

$jack->CreateBill("2013-08-12");
$jack->addBill("2013-08-12", 35);
echo "<br>".'<br>'.'<br>';
$mike->CreateBill("2013-09-11");
$mike->addBill("2013-09-11", 55);
?>

 

转载于:https://www.cnblogs.com/Robotke1/p/3264728.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值