注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Copper peas ' Bolg

Keep On Moving...This Is My Life...

 
 
 

日志

 
 

【原】 PHP 设计模式二十之模板设计模式  

2011-06-24 09:57:48|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

<?php
/**
 * 结算方式 模版设计模式
 * 定义:在一个方法里定义算法的骨架,将一些步骤延迟到其子类。模板方法使得子类有机会重新定义算法的某些步骤而不改变算法的结构
 * 等于先定义执行流程,然后下面的事情都按照流程顺序来办。
 * @anthor Chen Wei Han <csq-3@163.com>
 * @copyright Chen Wei Han 2011-6-24上午09:20:19
 * @link http://csq-3.blog.163.com
 * @package demo
 * @version 1.0
 */

/**
 * 抽象模版骨架类
 * 结算方式:某总公司的结算方式要求下面分公司都按照这个方式统一计算     
 * 利润 =(总销售额-公司成本)*(不同地方根据当地生活水平因素算出的一个消费系数[具体消费系数的算法,各公司有些不同])
 */

abstract class abstract_tpl
{
 
 //总销售额获取
 abstract public function totals();
 
 //公司成本获取
 abstract public function companycost();

 //生活水平系数
    abstract public function coefficient();
    
    //利润
    public function profit(){
           return ($this->totals()-$this->companycost())*$this->coefficient();    
    }
}

/**
 * A分公司
 */
class A extends abstract_tpl
{
       public function totals()
       {
            return 10000;
       }
      
       public function companycost()
       {
            return 3000;
       }
      
       public function coefficient()
       {
            return 0.9;
       }    
}

/**
 * B分公司
 */
class B extends abstract_tpl
{
       public function totals()
       {
            return 8000;
       }
      
       public function companycost()
       {
            return 2000;
       }
      
       public function coefficient()
       {
            return 0.8;
       }     
}


$a = new A();
echo $a->profit();
$b = new B();
echo $b->profit();

  评论这张
 
阅读(110)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018