-
了解迪米特法則
- 迪米特法則
- 一個對象應(yīng)該對其他對象保持最少的了解
- 盡量降低類與類之間的耦合
- 類與類之間的關(guān)系越密切内颗,耦合度越大蛔添,當(dāng)一個類發(fā)生改變時,對另一個類的影響也越大
- 一個操作中算法的骨架鸽心,而將一些步驟延遲到子類中布疼,模板方法使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。
特定:靈活度高米诉,可擴展性強菱蔬。
<?php
// 抽象模板類
abstract Class SetMealModel
{
/**
* A,B套餐
* @var string
*/
public $name;
/**
* 初始化構(gòu)造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
{
/**
* 初始構(gòu)造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
{
/**
* 初始構(gòu)造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/>";
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者