-
了解迪米特法则
- 迪米特法则
- 一个对象应该对其他对象保持最少的了解
- 尽量降低类与类之间的耦合
- 类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大
- 一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
特定:灵活度高,可扩展性强。
<?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/>";
}
}
网友评论