行为型设计模式->模板模式

2018-12-04  本文已影响0人  liu66_net
<?php  
  
// 抽象模板类  
abstract Class SetMealModel  
{  
    /**    
     * A,B套餐    
     * @var string    
     */   
    public $name;  
  
    /**    
     * 初始化构造A,B套餐   
     * @access public     
     * @param  string $_name   
     */   
    function __construct($_name)  
    {  
        $this->name =$_name;  
    }  
  
    /**    
     * 模板方法的方法   
     * @access public   
     */   
    public function Make()  
    {  
        $this->MakeDrink();  
        $this->MakeFood();  
        echo $this->name."完成<br/>";  
    }  
    /**    
     *  抽象饮料制作方法   
     * @access public   
     */   
    public abstract function MakeDrink();  
      
    /**    
     *  抽象饮料主食方法   
     * @access public   
     */  
    public abstract function MakeFood();  
}  
  
// 具体A套餐  
Class AsetMeal extends SetMealModel  
{  
    /**    
     * 初始构造A套餐   
     * @access public     
     * @param  string $name   
     */   
    function __construct($name = "A套餐")  
    {  
        parent::__construct($name);  
    }  
    /**    
     *  具体饮料制作方法   
     * @access public   
     */  
    function MakeDrink()  
    {  
        echo $this->name."饮料:雪碧<br/>";  
    }  
    /**    
     *  具体主食制作方法   
     * @access public   
     */  
    function MakeFood()  
    {  
        echo $this->name."主食:照烧鸡排饭<br/>";  
    }  
}  
  
// B套餐  
Class BsetMeal extends SetMealModel  
{  
    /**    
     * 初始构造B套餐   
     * @access public     
     * @param  string $name   
     */   
    function __construct($name = "B套餐")  
    {  
        parent::__construct($name);  
    }  
    /**    
     *  具体饮料制作方法   
     * @access public   
     */  
    function MakeDrink()  
    {  
        echo $this->name."饮料:可乐<br/>";  
    }  
    /**    
     *  具体主食制作方法   
     * @access public   
     */  
    function MakeFood()  
    {  
        echo $this->name."主食:咖喱猪排饭<br/>";  
    }  
}  

上一篇 下一篇

猜你喜欢

热点阅读