zoukankan      html  css  js  c++  java
  • 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);
    ?>
  • 相关阅读:
    Java关键字transient和volatile小结(转)
    1、环境
    SSH框架搭建
    2.4 easyui
    PHP操作大文件
    PHP小工具
    PHP正则替换函数收集
    PHP小知识收集
    Yii ACF(accessController)简单控权
    linux 文件存放目录
  • 原文地址:https://www.cnblogs.com/Robotke1/p/3264728.html
Copyright © 2011-2022 走看看