B1 模板方法模式 TemplateMethod

2022-07-22 11:15:11 字數 893 閱讀 8883

定義乙個操作中的演算法骨架,而將一些步驟延遲到子類中.模板方法使得子類可以不改變乙個演算法的結構即可重新定義該演算法的某些特定步驟

應用場景:

a.操作步驟穩定,而具體細節延遲到子類.

示例**:

所有的商品類在使用者購買前,都需要給使用者顯示出最終支付的費用.但有些商品需要納稅,有些商品可能有打折.

abstract class product

public function getpayprice()

protected function discount()

abstract protected function tax();}

class cd extends product

protected function tax()

} class iphone extends product

protected function tax()

protected function discount()

}$cd = new cd(15);

$cd->setadjustment();

echo $cd->getpayprice();

$iphone = new iphone(6000);

$iphone->setadjustment();

echo $iphone->getpayprice();

ps:一般為防止模板下屬類修改模板,模板方法都會加上final

營養與維生素B1

維生素b 1 維生素b1也叫硫胺素,分子內既含硫 也含氨基。2 耐熱,在乾燥條件下和酸性環境下中不易被氧化 在中興和踐行環境下容易被氧化 3 對亞硫酸鹽特別敏感,儲存穀類 豆類的糧倉不能 用亞硫酸亞作為防腐劑,也不能用s02燻蒸。4 有些食物如軟體動物和魚類的肝臟中含硫胺素酶,會破壞硫胺素,但加熱後...

模板方法模式1

author version 0.1 模板設計模式 時間消耗模板 使用該模板測試方法的執行時間 public abstract class timeexpendtemplate 建立timeexpendtemplatetest類繼承timeexpendtemplate模板,重寫method的方法,例...

1 模板方法模式

晚繫結機制 定義乙個操作中的演算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。使用場景 1.多個子類有公有的方法,且邏輯基本相同時 2.重要,複雜的演算法,可以把核心演算法設計為模板方法,周邊的相關細節功能則由各個子類實現 3.重構時,把相同...